Python:localhost上的端口扫描

时间:2017-12-26 14:21:20

标签: python sockets port

我在python中使用端口扫描程序,可以检查公共和本地IP的开放端口。 公共IP上的Portscann工作正常,但是当我尝试在localhost(127.0.0.1或0.0.0.0)上扫描时,它会在每个端口上说这是关闭的......

继承守则:

    try:
    for port in range(int(sport), int(eport) + 1):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        result = sock.connect_ex((remoteServer, port))
        if result == 0:
            print("[+] Port " + str(port) + " = [Open]")
        else:
            print("[-] Port " + str(port) + " = [Closed]")
        sock.close()
except:
    print("\nScan failed!")
    time.sleep(2)
    print("Check your IP adress.\n")
    time.sleep(3)
    print("The programm will be closed...")
    time.sleep(4)
    sys.exit(0)

1 个答案:

答案 0 :(得分:0)

  1. 也许你的服务器只是绑定公共IP(可能在它的配置文件中,有一个关于它绑定的ip的配置),所以这个服务器可以被其他人访问。
  2. 如果服务器绑定127.0.0.1(回送地址),可能除了你自己以外的其他人都无法访问它。
  3. 所以我认为第一种情况(绑定公共IP),它没有绑定127.0.0.1(回送地址),导致你无法扫描它们。换句话说,公共IP和环回地址代表2个不同的网络设备。