そういえばブログで書いてなかったな、と次の記事を見て思い出しました。
Checking Network Adapter Speed
せっかくなので紹介しておきます。 ====
ネットワークインターフェースの速度を取得する
記事の例通り、System.Net.NetworkInformation.NetworkInterface
を利用しています。
MSDN - NetworkInterface クラス
また、Speedプロパティは次の通りです。
NetworkInterface.Speed プロパティ プロパティ値 bps (bits per second) 単位で速度を示す Int64 値。 このプロパティによって返される値は、ネットワーク インターフェイスから報告されます。動的には計算されません。
PowerShellでは以下のコードで取得できます。
[System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() | select Description, Speed, OperationalStatus
結果です。
Description Speed OperationalStatus ----------- ----- ----------------- Realtek PCIe GBE Family Controller #2 1000000000 Up Realtek PCIe GBE Family Controller -1 Down Software Loopback Interface 1 1073741824 Up Microsoft ISATAP Adapter 100000 Down Teredo Tunneling Pseudo-Interface 100000 Up
生きているネットワークインターフェースの速度を取得する
せっかくなので少しフィルタしてみます。 あとは、bpsでは読みにくいのでMbpsとGbpsを記載します。
[System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() ` | where {$_.OperationalStatus -eq "Up" } ` | select Description, @{label="Speed(Mbps)";expression={$_.Speed / 1000 / 1000}}, @{label="Speed(Gbps)";expression={$_.Speed / 1000 / 1000 / 1000}}, OperationalStatus ` | sort Description ` | Format-Table -AutoSize
結果です。
Description Speed(Mbps) Speed(Gbps) OperationalStatus ----------- ----------- ----------- ----------------- Realtek PCIe GBE Family Controller #2 1000 1 Up Software Loopback Interface 1 1073.741824 1.073741824 Up Teredo Tunneling Pseudo-Interface 0.1 0.0001 Up
ブログでは幅が足りず表記がくずれてしました。
function化
適当にfunction化してみます。
#region function get-kbps,Mbps function get-Mbps{ param( [Parameter(Mandantory=$true)] [int]$speed ) $Mbps = $speed / 1000 / 1000 return $Mbps } function get-Gbps{ param( [Parameter(Mandantory=$true)] [int]$speed ) $Gbps = $speed / 1000 / 1000 / 1000 return $Gbps } #endregion function Get-NetworkInterfaceSpeed{ [System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() ` | where {$_.OperationalStatus -eq "Up" } ` | select Description, @{label="Speed(Mbps)";expression={ get-Mbps -speed $_.Speed }}, @{label="Speed(Gbps)";expression={ get-Gbps -speed $_.Speed }}, OperationalStatus ` | sort Description ` | Format-Table -AutoSize } Get-NetworkInterfaceSpeed
まとめ
簡単ですが、有意義なデータですので活用する場面は多いですね。