【发布时间】: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] 试图以访问权限禁止的方式访问套接字”