Estou tentando encontrar uma maneira de fazer com que meu roteador relate meu IP de WAN usando UPnP / SSDP, mas até agora não consegui nem obter uma lista de UPnP compatíveis com dispositivos de acesso à Internet na minha rede. Aqui está o pedido que estou enviando:
$ cat request.txt
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
MX: 3
ST: urn:schemas-upnp-org:device:InternetGatewayDevice:1
Com o comando:
$ nc -uvv 239.255.255.250 1900 < request.txt
Connection to 239.255.255.250 1900 port [udp/ssdp] succeeded!
Acabei de receber a mensagem de conexão bem-sucedida e nada ...
Alguém poderia me dar alguma dica (sem endereços de memória, por favor!) Sobre o que estou fazendo de errado?
Atualização: Ok, então tentei usar tcpdump
para obter respostas, eis o que tenho:
$ sudo tcpdump -vv -A -s 0 -i en1 udp port 1900 and host 239.255.255.250
…
NOTIFY * HTTP/1.1
Host: 239.255.255.250:1900
Cache-Control: max-age=60
Location: http://192.168.1.1:1780/InternetGatewayDevice.xml
NTS: ssdp:alive
Server: POSIX, UPnP/1.0 linux/5.100.104.2
NT: urn:schemas-upnp-org:device:InternetGatewayDevice:1
…
Acho que o próximo passo é analisar a saída do tcpdump e filtrar todas as respostas que não contêm o NT: urn:schemas-upnp-org:device:InternetGatewayDevice:1
cabeçalho e, em seguida, fazer a solicitação SOAP real ao roteador.
Respostas:
Você precisará usar
tcpdump
algo semelhante para ver a resposta ou respostas.nc
está procurando uma resposta do terminal para o qual você enviou a solicitação. Mas o terminal para o qual você enviou a solicitação é um destino de transmissão genérico. A resposta virá não de um destino de transmissão genérico, mas do dispositivo específico que responde.Como
nc
diz a saída, ele se conectou ao alvo de transmissão. Portanto, não será possível ver as respostas provenientes dos dispositivos respondentes.fonte
Embora essa tarefa seja bastante antiga, eu posto a resposta, eu mesma estava procurando.
Sua resposta UPnP postou o local " http://192.168.1.1:1780/InternetGatewayDevice.xml "
Lá você pode obter mais informações sobre o formato dos dados. Para o meu roteador: cheguei lá mais caminhos para xmls. Ligando para eles, há mais informações sobre UPnP. resultando nisso: eu chamei:
e obtenha como resposta:
Eu recebi muita ajuda do "UPnP Inspector"
fonte
Você pode usar
socat
fonte