Я новичок в Python и застрял в какой-то момент. Я хочу создать сканер портов, используя только встроенные библиотеки Python 3 (что означает отказ от scapy и т. д.). У меня есть следующий код:
import socket
for i in range(1,26):
s = socket.socket()
s.settimeout(0.5)
ip = "74.207.244.221" #scanme.nmap.org
response = s.connect_ex((ip, i))
if response:
print ("%d\tclose" %i)
else:
print ("%d\topen" %i)
s.close()
Теперь я хочу добавить к этому две функции:
различение между закрытыми и фильтруемыми портами. В обоих случаях я получаю в ответ одно и то же сообщение об ошибке, так как я могу проверить, получил ли я обратно первый пакет или ничего? Насколько я пробовал, s.recv() для этого не работает.
Я хочу контролировать количество попыток (попыток), т.е. я хочу отправить только одну или две син-пакеты. Я не хочу, чтобы эта программа отправляла более двух пакетов синхронизации для зондов. Как этого можно достичь?
Я новичок в Python и застрял в какой-то момент. Я хочу создать сканер портов, используя только встроенные библиотеки Python 3 (что означает отказ от scapy и т. д.). У меня есть следующий код:
[code]import socket for i in range(1,26): s = socket.socket() s.settimeout(0.5) ip = "74.207.244.221" #scanme.nmap.org response = s.connect_ex((ip, i)) if response: print ("%d\tclose" %i) else: print ("%d\topen" %i) s.close() [/code]
Теперь я хочу добавить к этому две функции:
[list] [*]различение между закрытыми и фильтруемыми портами. В обоих случаях я получаю в ответ одно и то же сообщение об ошибке, так как я могу проверить, получил ли я обратно первый пакет или ничего? Насколько я пробовал, s.recv() для этого не работает. [*]Я хочу контролировать количество попыток (попыток), т.е. я хочу отправить только одну или две син-пакеты. Я не хочу, чтобы эта программа отправляла более двух пакетов синхронизации для зондов. Как этого можно достичь? [/list]