Netcat порт 1900 не возвращает ответа
Поэтому я пытаюсь получить ответ от сервера, на котором открыт порт 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
Но я не получаю никакого ответа от сервера, по крайней мере, тот, который выводится на экран. Я точно знаю, что на этом IP открыт порт udp 1900. Если бы кто-нибудь мог предоставить какую-либо помощь для получения ответа от сервера с открытым портом udp 1900, это было бы очень полезно. Спасибо
1 ответ
Используемый здесь 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 ...