2015-11-05 48 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 

有时候,我得到了输出,openclose,但有时我没有输出。例如,我输入64.233.160.264.233.160.3,否输出openclose输出。我怎么了?

+0

你试过把所有的东西都试一试,除了看看有什么不对吗? –

+0

@JohnRuddell没有错。只是没有输出,程序似乎不能停止运行,只有当你按ctrl + c –

+0

,如果你尝试'telnet'这样的IP,你会得到'尝试64.233.160.3 ...'无限期挂起 – Pynchia

回答

相关问题