Python 为什么我的程序没有输出
我使用Python 为什么我的程序没有输出,python,sockets,network-programming,Python,Sockets,Network Programming,我使用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 = sock
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
有时我得到的输出是
打开
或关闭
,但有时我没有得到输出。例如,我输入64.233.160.2
或64.233.160.3
,无打开
或关闭
输出。我怎么了?最可能的原因是您尝试连接的机器既不接受连接,也不主动拒绝连接。尝试设置连接的超时()
在按下
Ctrl-C
之前,您的程序不会退出这一事实表明,socket.connect
调用正在阻塞。您是否尝试过将所有内容都放入一次尝试中,并进行一次常规操作,只是为了看看有什么问题?@JohnRuddell没有问题。只是没有输出,程序似乎无法停止运行,只有当您按ctrl+cif键尝试telnet
这样的IP时,您才能尝试64.233.160.3…
挂起。这正是正在发生的事情,请参阅我上面的评论