【发布时间】: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 的端口 有没有一种功能/方法可以做到这一点?
【问题讨论】:
-
IANA 维护 Service Name and Transport Protocol Port Number Registry,但这并不能保证应用程序没有以非标准方式使用端口。例如,主机可能使用标准 HTTP 端口 80 来完成完全不同的事情。
标签: python sockets networking port