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