python套接字读取ip

时间:2018-12-28 15:46:42

标签: python

我有一个PortScanner,它允许用户输入IP,并扫描打开的端口。我有一个我不太了解的问题。我可以访问一堆服务器,因此我在它们上尝试了扫描仪。在一半的服务器上,它可以在另一半上工作,它无限地坐在那里,直到我脱离它为止。我注意到IP字符串中有2位数字(而不是3位)的问题: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')

1 个答案:

答案 0 :(得分:1)

我的第一个猜测是套接字正在挂起,或者是由于等待信息接收(不太可能,因为您没有使用socket.recv()),或者远程服务器的操作系统没有进行干净的断开连接因此,TCP不允许来自同一服务器的连接。以下是有关各个问题的一些有用线索: