找不到打开的端口 python
Can't find open ports 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)
要使此代码正常工作,您需要为每个连接(每个线程)单独创建套接字。
以下作品:
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 中创建一个简单的端口扫描器 - 它会尝试查看端口 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
。