как получить протокол от ip и порт с Python3?

1

Мне нужно получить протокол (HTTP, FTP, SSMTP, IMAP, ETC) из ip-адреса и порта с Python3.

Пример:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
protocol = s.connect( ("localhost", 80 )
print protocol #print HTTP
  • 1
    IP-адрес не играет. Вы можете получить имя протокола с помощью системного вызова getprotobytnumber() . Этого нет в стандартных библиотеках, но похоже, что вы можете использовать bitbucket.org/maze/getent/src/408aef1743dc/getent/libc.py
Теги:
ports
ip
protocols

1 ответ

5
Лучший ответ

В общем случае невозможно определить тип протокола сервера, прослушивающего какой-либо порт. Лучшее, что вы можете получить, - это запросить имя службы, которая обычно ассоциируется с некоторым номером порта:

>>> socket.getservbyport(80)
'www'
  • 0
    действительно работает, действительно безопасно?
  • 1
    @Olaf: определить «Безопасный». Какую проблему вы на самом деле пытаетесь решить?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню