[C#]ネットワーク(NIC)の情報をプログラムで取得する

C#(.Net Framework)では、System.Net.NetworkInformationクラスを使用することで、NICの情報を取得する事が可能です。

下記のコードはIPCONFIGで出力されるような、IPアドレス/MACアドレス等の情報を出力しています。

送受信速度は取得できませんが、これは一定時間周期でBytesSentやBytesReceivedの値を取得し、一定時間内にどれだけ値が増えたかを元に速度を算出します。
例えば1秒周期で値を取得すれば、前回取得値との差分が、Byte/Secの単位として速度が算出できます。

using System.Net.NetworkInformation;
...
 
private void button1_Click( object sender, EventArgs e ) {
 
    textBox1.Clear();
 
    //---------------------------------------
    // PCに搭載されている全てのNIC情報を取得
    //---------------------------------------
    NetworkInterface[] nicList = NetworkInterface.GetAllNetworkInterfaces();
 
 
    //-----------------------------------------
    // 取得した全NIC情報を出力するまで繰り返し
    //-----------------------------------------
    foreach( NetworkInterface nic in nicList ) {
        IPInterfaceProperties ipInfo = nic.GetIPProperties();
 
        textBox1.AppendText( "-----------------------------------" + Environment.NewLine );
        textBox1.AppendText( "名称       : " + nic.Name                                     + Environment.NewLine );
        textBox1.AppendText( "説明       : " + nic.Description                              + Environment.NewLine );
        textBox1.AppendText( "I/F種類    : " + nic.NetworkInterfaceType.ToString()          + Environment.NewLine );
        textBox1.AppendText( "最大速度   : " + ( nic.Speed / 1000000 ).ToString() + "Mbps"  + Environment.NewLine );
        textBox1.AppendText( "macアドレス: " +  nic.GetPhysicalAddress().ToString()         + Environment.NewLine );
        textBox1.AppendText( "送信byte数 : " + nic.GetIPv4Statistics().BytesSent.ToString() + Environment.NewLine );
        textBox1.AppendText( "受信byte数 : " + nic.GetIPv4Statistics().BytesReceived.ToString() + Environment.NewLine );
        if ( ipInfo.UnicastAddresses.Count > 0 ) {
            textBox1.AppendText( "IPアドレス : " +  ipInfo.UnicastAddresses[0].Address.ToString() + Environment.NewLine );
        } else {
            textBox1.AppendText( "IPアドレス : none" );
        }
    }
}



このコードを手元の環境で実行してみた結果です。

関連記事

コメントを残す

メールアドレスが公開されることはありません。