Я делаю простой сканер портов в PHP и пытаюсь выяснить, как я запрошу имя службы, с которой я подключаюсь, подобно тому, как Nmap может обнаружить Сервисы.Запросить имя службы через TCP-сокет
Я использую fsockopen(), чтобы открыть сокет, поэтому я бы воспользовался fwrite($socket, "WHAT SERVICE AM I COMMUNICATING WITH?")
, чтобы задать вопрос, а затем прослушать с помощью fgets($socket)
.
Как я могу спросить сервис, что это такое?
Да, я просто нашел страницу, на которой разработчики Nmap описывают свой метод сканирования сервисов (http://nmap.org/book/vscan-technique.html); это звучит довольно сложно воспроизвести. Я могу решить отказаться от этой функции, я просто писал это для удовольствия. Стоит попробовать, хотя, спасибо! Хотелось бы, чтобы была стандартная команда «версия», которую знали все программы. – user2120415
@ user2120415, просто проверяя, есть ли открытый TCP-порт, очень просто, и вы можете сделать наивные предположения, например, если 22 принимает соединения, тогда SSH работает на сервере. Порт 80? HTTP и т. Д. Вам не нужно сообщать о версиях и т. Д. – xaxxon