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

fykwrbwg  于 2023-05-23  发布在  Python
关注(0)|答案(1)|浏览(192)

我的学校有一些港口。像这样的东西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))
b4lqfgs4

b4lqfgs41#

尝试打开到范围内每个端口的套接字连接,然后仅在套接字实际打开时尝试发出请求,这样可能会更快。但是迭代一堆端口通常很慢。如果每一个都需要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
您还可以考虑分析代码并找出慢的部分在哪里。

相关问题