2015-11-05 2 views
0

Я использую 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. что со мной не так?

+0

Вы пытались положить все в попытку и иметь генерала, кроме как увидеть, что случилось? –

+0

@JohnRuddell нет ничего плохого. Просто нет вывода, и программа не может перестать работать, только когда вы нажимаете ctrl + c –

+0

, если вы пытаетесь «использовать telnet» для таких IP-адресов, вы получаете 'Trying 64.233.160.3 ...' зависание неопределенно – Pynchia

ответ

2

Наиболее вероятная причина в том, что машина, к которой вы пытаетесь подключиться, не принимает и не отказывается от подключения. Попробуйте установить тайм-аут для вашего соединения (https://docs.python.org/2/library/socket.html#socket.socket.settimeout).

Тот факт, что ваша программа не вышла, пока вы не нажмете Ctrl-C, предполагает, что вызов socket.connect блокируется.

+0

, что именно то, что происходит , см. мой комментарий выше. – Pynchia

Смежные вопросы