Я использую socket
для создания tcp-соединения и проверьте, открыт ли порт сервера 443.Почему у меня нет выходных данных для моей программы
#!/usr/bin/env python
import socket
import subprocess
import sys
from datetime import datetime
subprocess.call('clear', shell=True)
remoteServer = raw_input("Enter a remote host to scan: ")
remoteServerIP = socket.gethostbyname(remoteServer)
print "-" * 60
print "Please wait, scanning remote host", remoteServerIP
print "-" * 60
t1 = datetime.now()
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((remoteServerIP, 443))
if result == 0:
print "Port {443}: Open"
else:
print "Port {443}: Close"
sock.close()
except KeyboardInterrupt:
print "You pressed Ctrl+C"
sys.exit()
except socket.gaierror:
print 'Hostname could not be resolved. Exiting'
sys.exit()
except socket.error:
print "Couldn't connect to server"
sys.exit()
t2 = datetime.now()
total = t2 - t1
print 'Scanning Completed in: ', total
Иногда я получил выход с open
или close
, но иногда у меня нет выхода. Например, я вводил 64.233.160.2
или 64.233.160.3
, no open
или close
. что со мной не так?
Вы пытались положить все в попытку и иметь генерала, кроме как увидеть, что случилось? –
@JohnRuddell нет ничего плохого. Просто нет вывода, и программа не может перестать работать, только когда вы нажимаете ctrl + c –
, если вы пытаетесь «использовать telnet» для таких IP-адресов, вы получаете 'Trying 64.233.160.3 ...' зависание неопределенно – Pynchia