如何在 python 中获取特定范围内的空闲端口
How do I get free ports in the specific range in python
我可以使用 python 获取空闲端口,但我想获取特定范围的空闲端口。
我试着用while循环得到它,但是我得不到我想要的值,可能需要很长时间
import socket
SO_BINDTODEVICE=25
def get_free_port(iface=None):
s = socket.socket()
if iface:
s.setsockopt(socket.SOL_SOCKET, SO_BINDTODEVICE, bytes(iface,'utf8'))
s.bind(('',0))
port = 0
while(port<60100 or port>60300):
ip = s.getsockname()[0]
port = s.getsockname()[1]
s.close()
return ip,port
print(get_free_port())
希望能在短时间内拿到我想要的端口
def next_free_port( port=1024, max_port=65535 ):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
while port <= max_port:
try:
sock.bind(('', port))
sock.close()
return port
except OSError:
port += 1
raise IOError('no free ports')
我可以使用 python 获取空闲端口,但我想获取特定范围的空闲端口。
我试着用while循环得到它,但是我得不到我想要的值,可能需要很长时间
import socket
SO_BINDTODEVICE=25
def get_free_port(iface=None):
s = socket.socket()
if iface:
s.setsockopt(socket.SOL_SOCKET, SO_BINDTODEVICE, bytes(iface,'utf8'))
s.bind(('',0))
port = 0
while(port<60100 or port>60300):
ip = s.getsockname()[0]
port = s.getsockname()[1]
s.close()
return ip,port
print(get_free_port())
希望能在短时间内拿到我想要的端口
def next_free_port( port=1024, max_port=65535 ):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
while port <= max_port:
try:
sock.bind(('', port))
sock.close()
return port
except OSError:
port += 1
raise IOError('no free ports')