PythonでIPポートをまとめてスキャンするには?

IPとポートの大量スキャンを実行するには、Pythonのソケットライブラリを使用できます。簡単な例を以下に示します。

import socket

# 定义要扫描的IP和端口范围
target_ip = "192.168.0.1"
start_port = 1
end_port = 100

# 遍历指定的端口范围
for port in range(start_port, end_port+1):
    # 创建socket对象
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 设置超时时间为1秒
    sock.settimeout(1)
    
    try:
        # 尝试连接目标IP和端口
        result = sock.connect_ex((target_ip, port))
        if result == 0:
            print(f"端口 {port} 开放")
        else:
            print(f"端口 {port} 关闭")
    except socket.error:
        print(f"无法连接到端口 {port}")
    finally:
        # 关闭socket连接
        sock.close()

上記のコードでは Socket ライブラリの Socket 関数を使って TCP ソケットオブジェクトを作成します。その後 connect_ex メソッドを使って指定された IP とポートへの接続を試みます。返り値が 0 の場合はポートが開いていることを、そうでない場合は閉じていることを表します。最後に close メソッドを使ってソケットを閉じます。

ターゲットIP、開始ポート、終了ポートの値は必要に応じて変更でき、さまざまなIP、およびポート範囲をスキャンできます。この例は単純な例であることに注意してください。実際にはより複雑なロジックとエラー処理が必要になる場合があります。

bannerAds