【问题标题】:python - print out ports with their namespython - 打印出端口及其名称
【发布时间】:2018-04-10 18:18:59
【问题描述】:

我有以下用 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 的端口 有没有一种功能/方法可以做到这一点?

【问题讨论】:

标签: python sockets networking port


【解决方案1】:

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

【讨论】:

  • 但我认为大多数服务器都使用相同的端口来做同样的事情,对吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
相关资源
最近更新 更多