Задать вопрос
rootovich1
@rootovich1

Как правильно работать с сокетами в Python3?

Всем привет.
У меня есть несколько ip различных сайтов. У всех открыт порт 443.

45.60.40.164
185.71.67.88
185.71.67.56
212.5.66.66
178.248.232.33
185.203.72.185
185.62.200.245
217.73.62.241
212.193.152.179
104.16.199.133
178.248.232.221
178.248.232.181
95.101.172.6


Для того , чтобы убедиться , что открыт порт 443 я сканирую их с памощью Nmap.

nmap -p 443 -iL result_ips.txt

Nmap выводит информацию о том , что бОльшая часть ip действительно имеет открытый порт 443. Теперь я хочу протестировать это в Python.

import time
import socket

start_time = time.time()

def scan_port(ip,port):
  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  sock.settimeout(0.01)
  try:
     connect = sock.connect((ip,port))
     print(ip + port + ' open.')
     connect.close()
  except:
     pass

ports = ['443']

for port in ports:
    file_result_ips = open('result_ips.txt', 'r')
    for ip in file_result_ips:
        scan_port(ip,port)
        
file_result_ips.close()

print('')
print('%s seconds' % (time.time() - start_time))


Результат:

0.0005757808685302734 seconds
И все. Почему так проискодит ? Если я просто сканирую 1 ip адрес на 1000 портов , тогда информация корректна и примерно схожа с результатими Nmap.
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы