【问题标题】:Python Port Scanner says all ports are closedPython Port Scanner 说所有端口都已关闭
【发布时间】:2015-09-16 13:55:00
【问题描述】:

我在 python 编程方面相当熟练,我正在尝试制作一个端口扫描器 不使用任何第三方库。下面是我到目前为止编写的代码,但问题是当我扫描笔记本电脑的 IP 地址时,它显示所有端口都已关闭。我的代码有问题还是所有端口实际上都关闭了(如果是,为什么?)。任何帮助将不胜感激,谢谢。

from socket import *

class scanner():
  def __init__(self, ip):
    self.ip = ip
    self.scan()

def scan(self):
    print("Starting scan on host: %s "%(self.ip))
    for i in range(0, 10000):
        s = socket(AF_INET, SOCK_STREAM)
        try:
            s.connect((ip, i))
            print('Port %d: OPEN' % (i))
            s.close()
        except:
            print('Port %d: CLOSED' % (i))
            s.close()


ip = input("Input IP address to scan: ")
scanner(ip)

【问题讨论】:

  • 您是否尝试过使用 nmap 查看实际打开的端口?
  • 使用 except Exception as e: 并打印 e 以及消息“端口 %d: CLOSED”
  • 你确定吗?...我试过你的脚本,它工作正常,例如它说端口 80 已打开!...
  • @PadraicCunningham 我不熟悉 nmap,但我使用了命令提示符,它说有一对夫妇正在听
  • @mescalinum 我只是这样做了,他们都说“[WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机失败响应”,但其中一个说“[WinError 10013] 试图以访问权限禁止的方式访问套接字”

标签: python sockets


【解决方案1】:

您需要连接到您传递给构造函数的 ip: 而不是:

 s.connect((ip, i))

尝试:

 s.connect((self.ip, i))

希望有帮助!

【讨论】:

    猜你喜欢
    • 2017-02-21
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    相关资源
    最近更新 更多