Программа Python для поиска активного порта на сайте? - PullRequest
0 голосов
/ 30 мая 2018

В моем колледже есть несколько портов.Примерно так 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 голосов
/ 30 мая 2018

Вы можете использовать python-nmap , что аналогично nmap .

0 голосов
/ 30 мая 2018

Возможно, будет быстрее попытаться открыть сокетное соединение с каждым портом в диапазоне, а затем попытаться сделать запрос, только если сокет действительно открыт.Но часто бывает слишком медленно перебирать кучу портов.если для каждого требуется 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

Вы также можете рассмотреть вопрос о профилировании кода и выяснении, где медленные части.

...