gpt4 book ai didi

python - 绑定(bind)到特定范围内的开放端口

转载 作者:行者123 更新时间:2023-12-03 12:09:24 25 4
gpt4 key购买 nike

我想绑定(bind)一个套接字来监听一定范围内的任何开放端口。通常我绑定(bind)到零,操作系统很适合给我一个随机的开放端口。但是现在我需要保持在某个范围内,例如 4000-5000由防火墙指定。我如何向操作系统询问此范围内的开放端口?

我是从 Python 做的。我对跨平台解决方案感兴趣,但会满足于特定于 Linux 的东西。

最佳答案

我曾经为了完全相同的目的写了一小段代码

# SWAMI KARUPPASWAMI THUNNAI
import socket

class Ports:
"""
This class is ued to find all the open ports present
"""
__upper_bound = 0
__lower_bound = 0
__ip = "127.0.0.1" # change your i.p if it is not your machine IP
__ports = [] # our actively available ports
# used to set upper and lower bounds i.e the range of the ports to be scanned
def __init__(self,initial,final):
self.__lower_bound=initial
self.__upper_bound=final

# a method which scans for the range of ports
def scan_for_ports(self):
for i in range(self.__lower_bound,self.__upper_bound):
print("[SCANNING]: "+str(i))
check = self.is_port_opened(i)
if check == 0:
self.__ports.append(i) # append our opened port no
# a method to find whether a port is opened
def is_port_opened(self,portNo):
try:
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
connection = client.connect_ex((self.__ip,portNo)) # remember it is a tuple
port_opened = connection
client.close()
print(port_opened)
return port_opened
except socket.error as e:
print("SOCKET CANNOT BE CREATED! Do you have admin previlidges? or the port may be closed!")
print(e)
return -1
return -1
# A method to get the list of open ports
def get_list(self):
for i in self.__ports:
print("OPENED: "+str(i))


if __name__=="__main__":
ports = Ports(75,81)
ports.scan_for_ports()
ports.get_list()

现在,您可以轻松编写一个客户端来监听特定端口。我已经在我的计算机上使用一个小的 python 脚本打开了一个端口 (80) 进行了几分钟的测试,结果很好,请参见这里!

enter image description here

关于python - 绑定(bind)到特定范围内的开放端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43479095/

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