![見出し画像](https://assets.st-note.com/production/uploads/images/120659911/rectangle_large_type_2_b483c51ff0749773964daf0ecb205423.jpeg?width=1200)
ポート開放について
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は使用可能です