如何在Linux中找到开放端口?

2024-06-06 05:35:57 发布

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

是否有某种系统调用可以返回端口是否可用?或者至少是一种传统的方法,不会让你的程序成为一个坏公民?在

目前我是这样做的:

def find_open_port(min_port, max_port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    for port in range(min_port, max_port):
        if port > max_port:
            raise IOError('Could not find a free port between {0} and {1}'.format(min_port, max_port))
        try:
            s.bind(('localhost', port))
            return port
        except socket.error as error:
            if error.strerror == 'Address already in use':
                continue
            else:
                raise error

恶心!在


Tags: 方法端口in程序ifport系统error
1条回答
网友
1楼 · 发布于 2024-06-06 05:35:57

据我所知,检查某个特定端口是否可用的最简单方法是尝试并绑定到该端口或尝试连接到该端口(如果需要TCP)。如果绑定(或连接)成功,则它可用(正在使用)。在

但是,如果您只想让任何打开端口,您可以绑定到端口0,操作系统将为您分配一个端口。在

相关问题 更多 >