python-2.7 - Python 2.7 端口扫描器
问题描述
我想知道为什么我的 portScanner 模块运行并声称我的所有端口都已关闭?
我正在运行 Python 2.7,因为这就是 Violent Python(本书)使用的。
到目前为止,我尝试过的唯一解决方案是将我的 DNS 设置为 8.8.8.8 并设置为 8.8.4.4,因为我的套接字将“www.google.com”作为 Ip。
代码:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serverIp = socket.gethostbyname('www.google.com')
def pscan(port):
try:
s.connect((serverIp,port))
return True
except:
return False
for x in range(1,101):
if pscan(x):
print("Port %d is open!!!" % (x))
else:
print("Port %d is closed" % (x))
解决方案
您只创建一个套接字并尝试在多个连接中使用它。这是不可能的。如果您查看 Exception 的详细信息,您会注意到第一个(端口 1)由于连接超时而缓慢失败,但由于“Operation already in progress” ,以下几个都很快失败。
解决方法是在每个connect
. 此外,减少它尝试连接的时间可能会有所帮助s.settimeout(1)
。
推荐阅读
- java - 如何从 JSON API 过滤数据
- javascript - 选择语言后只显示一个问题,不显示其他选项
- python - 从字典中查找最小值(不包括 0)
- python - 如何在 Django 中更改 models.ForeignKey 的输出?
- sql - 如何在存储过程选择子句中使用 with 子句 CTE 表达式常见
- git - 当我和同事在同一个分支上工作时
- javascript - 我无法使用 JS 代码设置上传的宽度/高度
- google-chrome - 无法在 Chrome / Edge 中打开 PowerApps
- php - 在laravel中使用vue-router时无法获取url
- java - 如何从 mac OS Big Sur 中删除多个 java 版本?