pythonsocket读取ip的问题
我有一个PortScanner,允许用户输入IP,并扫描打开的端口。我有一个我不太明白的问题。我可以访问一堆服务器,所以我在它们上试用了扫描仪。在一半的服务器上,它工作在另一半服务器上,它只是坐在那里不停地运行,直到我打破它。我注意到字符串中有2个数字而不是3个数字的IP存在问题,比如:199.110.13.300,但是我只是在本地192.168.1.1上尝试了一下,它起了作用,所以我不确定是什么导致了不一致pythonsocket读取ip的问题,python,Python,我有一个PortScanner,允许用户输入IP,并扫描打开的端口。我有一个我不太明白的问题。我可以访问一堆服务器,所以我在它们上试用了扫描仪。在一半的服务器上,它工作在另一半服务器上,它只是坐在那里不停地运行,直到我打破它。我注意到字符串中有2个数字而不是3个数字的IP存在问题,比如:199.110.13.300,但是我只是在本地192.168.1.1上尝试了一下,它起了作用,所以我不确定是什么导致了不一致 #!/usr/bin/env python3 import socket sock
#!/usr/bin/env python3
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
target = input("Enter IP to check: ")
maxPort = 1000
def scanner(port):
try:
sock.connect((target, port))
return True
except:
return False
for portNumber in range(1,int(maxPort)):
if scanner(portNumber):
print('[*] Port', portNumber, '/tcp','is open')
我的第一个猜测是,套接字挂起是因为等待接收信息(不太可能,因为您没有使用
socket.recv()
),或者远程服务器的操作系统没有完全断开连接,因此TCP不允许从同一服务器连接。以下是一些关于各自问题的有用线索: