c# でリスニング状態のポートを確認する方法

c# でリッスン状態のTCP/IPポートを確認する方法について説明します。

ipad-820272_640.jpg

IPGlobalProperties クラスと IPEndPointクラスを使用します。

IPGlobalProperties Class

IPEndPoint Class

以下のコードでは、portNo変数に指定したポート番号「8080」が、TCP/IPリスナーで使用されているかチェックします。

//using System.Net.NetworkInformation;
//using System.Net;

    int portNo = 8080;

    IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
    IPEndPoint[] tcpConnInfoArray = ipGlobalProperties.GetActiveTcpListeners();

    foreach (IPEndPoint endpoint in tcpConnInfoArray)
    {
        if (endpoint.Port == portNo)
        {
            //ポート使用中
        }
    }

IPEndPointクラスには、アドレスやポート番号といったプロパティが定義されています。

以下のように書くと、現在使用中のアドレスとポート番号を表示します。

//using System.Net.NetworkInformation;
//using System.Net;

    IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
    IPEndPoint[] tcpConnInfoArray = ipGlobalProperties.GetActiveTcpListeners();

    foreach (IPEndPoint endpoint in tcpConnInfoArray)
    {
        Console.WriteLine(${endpoint.Address}:{endpoint.Port});
    }

- 実行例

0.0.0.0:21
0.0.0.0:80
0.0.0.0:135
0.0.0.0:445
0.0.0.0:5040
0.0.0.0:49664
0.0.0.0:49665
0.0.0.0:49666
0.0.0.0:49667
0.0.0.0:49668
0.0.0.0:49669
0.0.0.0:49670
127.0.0.1:2323
127.0.0.1:60183
127.0.0.1:60206
127.0.0.1:60207
192.168.2.111:139
:::21
:::80
:::135
:::445
:::49664
:::49665
:::49666
:::49667
:::49668
:::49669
:::49670

ちなみに、アクティブなUDPリスナーを参照するには、GetActiveUdpListeners()を使用します。

//using System.Net.NetworkInformation;
//using System.Net;

    IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
    IPEndPoint[] tcpConnInfoArray = ipGlobalProperties.GetActiveUdpListeners();

    foreach (IPEndPoint endpoint in tcpConnInfoArray)
    {
        Console.WriteLine(${endpoint.Address}:{endpoint.Port});
    }

- 実行例

0.0.0.0:5050
0.0.0.0:5353
0.0.0.0:5353
0.0.0.0:5353
0.0.0.0:5355
127.0.0.1:1900
127.0.0.1:49664
127.0.0.1:63487
127.0.0.1:63488
127.0.0.1:63684
127.0.0.1:63685
127.0.0.1:64536
127.0.0.1:64612
127.0.0.1:64613
127.0.0.1:64850
127.0.0.1:64851
192.168.2.111:137
192.168.2.111:138
192.168.2.111:1900
192.168.2.111:64535
:::5353
:::5353
:::5355
::1:1900
::1:64534
fe80::c567:d05e:b3fa:a62e%4:1900
fe80::c567:d05e:b3fa:a62e%4:64533

おすすめ本 c#コードレシピ集

c#コードレシピ集は、「文字列を大文字あるいは小文字に変換したい」や「Taskをキャンセルしたい」など逆引き的にコードの書き方を調べられるレシピ集です。

2021年8月に発売された本で、全部で385個のレシピが収録されています。

ジャンルは日付処理やLINQ、並列処理と非同期処理など幅広く記載されています。

Kindle対応ですので、まずはサンプルをダウンロードして何が書かれているか確認してはいかがでしょうか。

コメント

タイトルとURLをコピーしました