找不到开放的Python端口

2024-04-18 11:32:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用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) 

Tags: 端口importipstreamreturnportsocketports
1条回答
网友
1楼 · 发布于 2024-04-18 11:32:20

要使此代码正常工作,需要为每个连接(每个线程)分别创建套接字。你知道吗

以下工作:

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等打开的端口。你知道吗

相关问题 更多 >