serik Posté(e) le 5 juillet 2008 Partager Posté(e) le 5 juillet 2008 Salut à tous, j'essai désespéremment d'ajouter un mappage de port avec Upnp (j'en ai besoin dans un projet). La requête que j'envoie : POST /Public_UPNP_C3 HTTP/1.0 HOST: 192.168.1.1:8000 Content-Length: 632 Content-Type: text/xml; charset="utf-8" SOAPACTION: "urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping" <?xml version="1.0" encoding="utf-8"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body> <u:AddPortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost> <NewExternalPort>2110</NewExternalPort> <NewProtocol>UDP</NewProtocol> <NewInternalPort>2110</NewInternalPort> <NewInternalClient>192.168.1.4</NewInternalClient> <NewEnabled>1</NewEnabled> <NewPortMappingDescription>UPNPTEST</NewPortMappingDescription> <NewLeaseDuration>3600</NewLeaseDuration> </u:AddPortMapping> </s:Body> </s:Envelope> Et la NeufBox me renvoie : HTTP/1.1 500 Internal Server Error CONTENT-LENGTH:425 CONTENT-TYPE:text/xml EXT: SERVER:Ambit OS/1.0 UPnP/1.0 AMBIT-UPNP/1.0 <?xml version="1.0"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>401</errorCode><errorDescription>Invalid Action</errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope> Quelle erreur ai-je faite? Merci à tous. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mephisto Posté(e) le 6 juillet 2008 Partager Posté(e) le 6 juillet 2008 401, 'Authorization Required' a priori, j'imagine qu'il faudrait s'identifier, ou un truc du genre Lien vers le commentaire Partager sur d’autres sites More sharing options...
serik Posté(e) le 6 juillet 2008 Auteur Partager Posté(e) le 6 juillet 2008 401, 'Authorization Required'a priori, j'imagine qu'il faudrait s'identifier, ou un truc du genre L'erreur HTTP est HTTP/1.1 500 Internal Server Error 401 c'est le code erreur de Upnp, qui correspond à Invalid Action. Mais depuis j'ai trouvé le problème : l'adresse ip se donne en network-byte-order, soit 4.1.168.192. Le port idem je pense. En fait j'ai trouvé ça en envoyant une requête GetGenericPortMappingEntry, qui donne cet ordre. Le problème maintenant, c'est que GetGenreicPortMappingEntry me renvoit l'adresse dans l'ordre normal. Je vais continuer à chercher mais je suis sur la bonne voie. Lien vers le commentaire Partager sur d’autres sites More sharing options...
serik Posté(e) le 6 juillet 2008 Auteur Partager Posté(e) le 6 juillet 2008 Finalement j'ai réussi à éxécuter mes requêtes. Cependant un mystère plane toujours : Pourquoi les requêtes addPortMapping et deletePortMapping sont dans la forme normale (unsigned short sous forme décimale, adresses ip dans le bon sens), et les réponses genre GetGenericPortMapping sont dans la forme invers (unsigned short en network byte order sous forme décimale [ex: 936 vaut 43011] et adresse ip inversée)? Y a-t-il une raison logique ou les concepteurs avaient trop fumé? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.