estou tentando usar o UPNP no meu roteador mas continua dando erro 501
o comando que estou usando
curl "192.168.1.1:52869/control/igd/devinfo" --header "SOAPAction: urn:dslforum-org:service:DeviceInfo:1#GetInfo" -vv -d @1.xml -H "Content-Type: text/xml;charset=utf-8"
o deviceinfo.xml do qual obtive as informações ... e o IGD.xml do qual obtive o SOAPAction ... exatamente esta parte
<serviceList>
<service>
<serviceType>urn:dslforum-org:service:DeviceInfo:1</serviceType>
<serviceId>DeviceInfo</serviceId>
<controlURL>/control/igd/devinfo</controlURL>
<eventSubURL>/event/igd/devinfo</eventSubURL>
<SCPDURL>/DeviceInfo.xml</SCPDURL>
por algum motivo desconhecido, as únicas solicitações que estão funcionando são essas também desta ferramenta
mesmo que o IGD.xml forneça várias opções .. encaminhamento de porta e algumas opções wan são as únicas disponíveis na ferramenta
o comando que funciona
curl "192.168.1.1:52869/upnp/control/WANIPConn1" --header "SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -vv -d @1.xml -H "Content-Type: text/xml;charset=utf-8"
o arquivo 1.xml se parece com isso, principalmente uma mistura da ação soap e da solicitação xml normal de soap.
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetExternalIPAddress xmlns:u=”urn:schemas-upnp-org:service:WANIPConnection:1″></u:GetExternalIPAddress></s:Body></s:Envelope>
eu nem sabia de onde a ferramenta tirou aquela url que é totalmente diferente das do arquivo igd.xml então procurei as strings nos arquivos de firmware do aparelho e encontrei um arquivo chamado gatedesc.skl com apenas as duas opções que estão na imagem... como é isso e onde está o problema?
Você tem aspas inteligentes ao redor do esquema em
1.xml
, corrija-as primeiro (a menos que seja apenas colando aqui).além do que @gaddman (obrigado, companheiro) disse .... aqui estão algumas informações que com certeza ajudarão qualquer pessoa que se deparar com esse problema.
se você estiver fazendo isso manualmente, na maioria das vezes a solicitação é feita dessa maneira (estou usando o curl para o trabalho)
curl "(aqui você digita o ip do dispositivo e a porta upnp + url de controle da configuração que deseja certificar-se de que encontrará usando ferramentas como miniupnpc-2.1 )" então este header --header "SOAPAction: (e uma parte longa que você encontrará no topo da URL da ação exatamente como esta imagem )+#(a ação que você deseja) então -vv -d @o arquivo onde você coloca as informações da ação que deseja.xml e este cabeçalho estático -H "Tipo de conteúdo: text/xml;charset=utf-8"
então basicamente o comando se parece com isso
você obtém os urls digitando listdevices.exe na linha de comando na pasta miniupnpc-2.1. o arquivo xml é principalmente estático e a parte dinâmica é feita do cabeçalho de ação do sabão como este
Eu realmente recomendo usar uma ferramenta GUI se você não tem idéia sobre isso, como UPnP Tester para Windows ou UPnP Tool , que eu realmente prefiro sobre a outra causa, pois obtém atualizações e funciona melhor principalmente.
desculpe pela explicação não clara, ainda sou novo nisso.