python - 套接字显示所有端口已关闭
问题描述
我试图通过套接字扫描端口,但它显示所有端口都已关闭。这是我的代码:
import socket
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host = input(" Please Input Ip address To Scan ")
#port = input(" ENter The Port ")
def portscanner(host):
for port in range(1,150):
if sock.connect_ex((host,int(port))):
print(f"{port} Is Closed")
else:
print("port is open")
portscanner(host)
解决方案
尝试在 forloop 中创建一个连接。并确保输入的格式有效。你可以在 sock.connect_ex 附近使用 try 和 catch 来检查你是否真的发送了有效的主机。
为了使事情变得更快,您也可以在 for 循环中使用 settimeout(0.25) 。
我本来打算这样做——
for port in range(start, end):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(.25)
result = sock.connect_ex((host, port))
if result == 0:
print(port,'port is open')
sock.close()
推荐阅读
- reactjs - 如何使用反应引导程序限制导航栏的宽度
- javascript - 如何在 A 帧中为 3D 模型启用动画?
- ios - 从另一个视图将变量传递给 SwiftUI AVPlayer
- node.js - 如何将承诺响应映射到节点打字稿中的对象?
- javascript - 返回倒计时数组javascript逻辑
- css - 如何创建一个在两侧具有尺寸箭头且尺寸活动区域的 Flexbox
- java - 如何在firebase android中不使用电子邮件或电话号码创建自定义用户帐户
- python - Pytest - yield inside for 仅适用于第一种方式
- c++ - 如何使用 OpenMP 使用 Visual Studio 并行化 C++
- python - 无法安装 webrtcvad