python - 打印出名为

时间:2017-10-29 18:44:58

标签: python sockets networking port

我在2.7 python中编写了以下代码:

#...import stuff

remoteServer = raw_input("Enter a remote host to scan: ")
remoteServerIP = socket.gethostbyname(remoteServer)

print "Please wait, scanning remote Host", remoteServerIP

try:
    for port in xrange(1, 1024):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        result = sock.connect_ex((remoteServerIP, port))
        if result == 0:
            print "port {}:    open".format(port)
        sock.close

except KeyboardInterrupt:
    print "\nexiting..."
    sys.exit()

输出:

Enter a remote host to scan: www.myexamplesite.com
Please wait, scanning remote Host xxx.xxx.xx.xx
port 21:    open
port 22:    open
...

但问题是我还想知道使用哪些端口以及它们的用途如下:

#... as usual
port 1 httpserver
port 2 chat server
...

但这只是打印1到1024的端口 有这样的功能/方法吗?

1 个答案:

答案 0 :(得分:2)

socket.getservbyport()会将端口号转换为服务期望在该端口上运行(通过/etc/services),但实际上不会通过端口进行通信以查找什么是真正的运行。