2012-01-18 27 views
1

我需要使用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 
+1

IP地址不会播放。您可以通过系统调用getprotobytnumber()来获得协议名称。它不在标准库中,但它看起来像你可以使用https://bitbucket.org/maze/getent/src/408aef1743dc/getent/libc.py – tripleee

回答

5

一般来说,它不可能检测服务器侦听某些端口上的协议类型。您可以获得的最好是请求通常与某个端口号关联的服务的名称:

>>> socket.getservbyport(80) 
'www' 
+0

真的工作,真的很安全吗? –

+1

@Olaf:定义“安全”。你实际上试图解决什么问题? – SingleNegationElimination

相关问题