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
,否输出open
或close
输出。我怎么了?
你试过把所有的东西都试一试,除了看看有什么不对吗? –
@JohnRuddell没有错。只是没有输出,程序似乎不能停止运行,只有当你按ctrl + c –
,如果你尝试'telnet'这样的IP,你会得到'尝试64.233.160.3 ...'无限期挂起 – Pynchia