Вот сам код:
# -*- coding: cp1251 -*-
import socket
HOST = “www.anyhost.com.ua” # удаленный компьютер
# создаем список портов
ports = [21, 22, 23, 25, 38, 43, 80, 109, 110, 115, 118, 119, 143,
194, 220, 443, 540, 585, 591, 1112, 1433, 1443, 3128, 3197,
3306, 4000, 4333, 5100, 5432, 6669, 8000, 8080, 9014, 9200]
for i in ports:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
sock.connect((HOST, i)) # соединяемся к порту, i - port
except:
continue # если порт закрыт, то переходим к следующему
result = sock.recv(1024) # очередная порция байтов
print “Получено:”, i, “порт: ”, result
sock.close()
Сначало все идет по плану. То есть, соединяемся с определенным портом, если нет коннекта, то переходим на следующий порт. Вот в этом вся проблема, когда цикл доходит то того порта, который закрыт - сканер, просто молчит, ничего не выводит о полученой информации о порте.
Пишет вроде вот этого:
Получено: 21 порт 220 web.anyhost.com.ua FTP server (Version 6.00LS) ready.
Получено: 22 порт SSH-2.0-OpenSSH_3.8.1p1 FreeBSD-20040419
Получено: 25 порт 220 mail.anyhost.com.ua ESMTP Postfix
| #вот тут молчит...