Netcat порт 1900 не возвращает ответа - PullRequest
0 голосов
/ 13 октября 2018

Итак, я пытаюсь получить ответ от сервера, на котором открыт порт udp 1900.

Это команда, которую я ввожу, и данные, которые я отправляю:

root$ nc -uvv <ip of server> 1900
M-SEARCH * HTTP/1.1
HOST:239.255.255.250:1900
MAN:"ssdp:discover"
MX:5
ST:ssdp:all

Но я не получаю никакого ответа от сервера, по крайней мере, тот, который выводится на экран.Я точно знаю, что порт udp 1900 открыт на этом IP.Если бы кто-нибудь мог оказать какую-либо помощь в получении ответа от сервера с открытым портом udp 1900, это было бы очень признательно.Спасибо

1 Ответ

0 голосов
/ 13 октября 2018

Используемый здесь HTTPU основан на HTTP, и поэтому конец строки должен быть CR LF, а не простым LF, как в вашем случае - хотя серверы могут игнорировать это.Кроме того, заголовок запроса должен также заканчиваться строкой, состоящей только из CR LF - хотя серверы тоже могут это игнорировать.Но важно, чтобы весь запрос содержался в одном сообщении UDP, поскольку UDP - это дейтаграмма, а не потоковый протокол, такой как TCP.Только если вы просто введете запрос на терминале, nc создаст новый пакет для каждой введенной вами строки.

Это работает для меня, если весь запрос помещается в файл (с соответствующим CR LF в качестве конца строкии пустая строка в качестве конца заголовка), а затем передать его в nc:

cat request | nc -uvv <ip-address> 1900
...
HTTP/1.1 200 OK
LOCATION: http://.../igd2desc.xml
SERVER: FRITZ!Box ...
...