gpt4 book ai didi

python - python 找不到开放端口

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:09 25 4
gpt4 key购买 nike

我正在尝试用 python 创建一个简单的端口扫描器 - 它尝试查看端口 0-10000 是否打开,然后将它们附加到一个数组中。但是,即使我打开一个端口,它仍然无法识别该端口已打开。

谢谢

代码:

import socket
import threading

ip = "127.0.0.1"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #socket.AF_INET, socket.SOCK_STREAM
open_ports = []
def porttry(ip, port):
try:
s.connect((ip, port))
print("Port opened on %d" % port)
open_ports.append(port)
return True
except:

return None

for port in range(0, 10000):
threading.Thread(target=porttry,args=(ip,port)).start()
if port%100==0:
print(port)

最佳答案

要使此代码正常工作,您需要为每个连接(每个线程)单独创建套接字。

以下作品:

import socket
import threading

ip = "127.0.0.1"
open_ports = []
def porttry(ip, port):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, port))
print("Port opened on %d" % port)
open_ports.append(port)
s.close()
return True
except:
return False

for port in range(0, 10000):
threading.Thread(target=porttry, args=(ip,port)).start()
if port % 100 == 0:
print(port)

它检测使用例如nc -l 1777打开的端口。

关于python - python 找不到开放端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37344457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com