見出し画像

ポート開放について

OS上にて予約済みのポートというものが有るらしく
連続した複数のポートを開放するにあたって問題がないか調べるコードを作りました。

# -*- coding: utf-8 -*-
import socket

def check_ports(start, end):
    reserved = []
    for port in range(start, end+1):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        result = sock.connect_ex(('127.0.0.1', port))
        if result == 0:
            reserved.append(port)
        sock.close()
    return reserved

def print_status(reserved_ports, start, end):
    if reserved_ports:
        for port in reserved_ports:
            print(f"ポート{port}は予約済みです")
    else:
        print(f"ポート{start}-{end}は使用可能です")

start_port = 2767
end_port = 3266
reserved_ports = check_ports(start_port, end_port)
print_status(reserved_ports, start_port, end_port)

解説
以下の部分はそれぞれの環境に合わせて変更して下さい

start_port = 2767 end_port = 3266

以下がターミナルに出力されたもの
hogehoge@hogehoge-machine:~$ python port.py
ポート2767-3266は使用可能です

この記事が気に入ったらサポートをしてみませんか?