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" ); } } } |
このコードを手元の環境で実行してみた結果です。

関連記事
コメントを残す