pythonsocket读取ip的问题

pythonsocket读取ip的问题,python,Python,我有一个PortScanner,允许用户输入IP,并扫描打开的端口。我有一个我不太明白的问题。我可以访问一堆服务器,所以我在它们上试用了扫描仪。在一半的服务器上,它工作在另一半服务器上,它只是坐在那里不停地运行,直到我打破它。我注意到字符串中有2个数字而不是3个数字的IP存在问题,比如:199.110.13.300,但是我只是在本地192.168.1.1上尝试了一下,它起了作用,所以我不确定是什么导致了不一致 #!/usr/bin/env python3 import socket sock

我有一个PortScanner,允许用户输入IP,并扫描打开的端口。我有一个我不太明白的问题。我可以访问一堆服务器,所以我在它们上试用了扫描仪。在一半的服务器上,它工作在另一半服务器上,它只是坐在那里不停地运行,直到我打破它。我注意到字符串中有2个数字而不是3个数字的IP存在问题,比如:199.110.13.300,但是我只是在本地192.168.1.1上尝试了一下,它起了作用,所以我不确定是什么导致了不一致

#!/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不允许从同一服务器连接。以下是一些关于各自问题的有用线索:


请给出一个ip问题的示例。您是否尝试添加一些日志记录、使用pdb调试或在strace下运行?你需要更多的信息,而这些是获取信息的正常方式。还有,“无止境”有多长?如果connect正在等待TCP超时,而不是得到一个明确的拒绝,这需要很长时间。如果你读了我的帖子,你会发现它不应该被拒绝。我用它作为例子。地址中有两个数字的IP,就像我在第二个小数点后显示的那样,似乎会导致问题。我不会为你发布我的服务器IP,因此我举了个例子。在发表评论之前,请阅读整篇文章。