我需要使用Python3从IP地址和端口获取协议(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
我需要使用Python3从IP地址和端口获取协议(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
一般来说,它不可能检测服务器侦听某些端口上的协议类型。您可以获得的最好是请求通常与某个端口号关联的服务的名称:
>>> socket.getservbyport(80)
'www'
真的工作,真的很安全吗? –
@Olaf:定义“安全”。你实际上试图解决什么问题? – SingleNegationElimination
IP地址不会播放。您可以通过系统调用getprotobytnumber()来获得协议名称。它不在标准库中,但它看起来像你可以使用https://bitbucket.org/maze/getent/src/408aef1743dc/getent/libc.py – tripleee