Python程序在网站上找到活动端口?

时间:2018-05-30 13:54:00

标签: python python-3.x networking web urllib

我的大学有一些港口。像这样的东西 http://www.college.in:913 我想要一个程序来找到活跃的程序。我的意思是我想要网站正在运行的那些端口号。 这是一个代码。但这需要很多时间。

from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
for i in range(1,10000):
  req = Request("http://college.edu.in:"+str(i))
  try:
     response = urlopen(req)

  except URLError as e:
     print("Error at port"+str(i) )
  else:
     print ('Website is working fine'+str(i))

2 个答案:

答案 0 :(得分:1)

尝试打开范围内每个端口的套接字连接可能会更快,然后仅在套接字实际打开时尝试发出请求。但是通过一堆端口迭代通常很慢。如果它们每个需要0.5秒,并且你正在扫描10000个等待很多时间的端口。

# create an INET, STREAMing socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# now connect to the web server on port 80 - the normal http port
s.connect(("www.python.org", 80))
s.close()

来自https://docs.python.org/3/howto/sockets.html

您可能还会考虑分析代码并找出缓慢部分的位置。

答案 1 :(得分:0)

您可以使用python-nmap,类似于nmap