PowerShellでシステム情報を取得(5)
ここではネットワーク情報を取得します。ネットワーク情報は
Get-NetIPConfiguration
で取得できます。出力結果は
InterfaceAlias : Wi-Fi
InterfaceIndex : 14
InterfaceDescription : Intel(R) Dual Band Wireless-AC 3168
NetProfile.Name : XXXX
IPv4Address : 192.168.X.X
IPv6DefaultGateway :
IPv4DefaultGateway : 192.168.X.X
DNSServer : X.X.X.X
X.X.X.X
InterfaceAlias : Bluetooth ネットワーク接続
InterfaceIndex : 6
InterfaceDescription : Bluetooth Device (Personal Area Network)
NetAdapter.Status : Disconnected
InterfaceAlias : イーサネット
InterfaceIndex : 2
InterfaceDescription : Realtek PCIe GbE Family Controller
NetAdapter.Status : Disconnected
のような感じ。WIFIでつなげているので有線LAN(イーサネット)の情報はでてきません(NetAdapter.StatusがDisconnected)。量が多いのでSelect-Objectで抽出します。
Get-NetIPConfiguration | Select-Object InterfaceAlias,InterfaceDescription,IPv4Address
この出力結果は以下の通り。
InterfaceAlias InterfaceDescription IPv4Address
-------------- -------------------- -----------
Wi-Fi Intel(R) Dual Band Wireless-AC 3168 {X.X.X.X}
Bluetooth ネットワーク接続 Bluetooth Device (Personal Area Network) {169.254.X.X}
イーサネット Realtek PCIe GbE Family Controller {169.254.X.X}
Bluetoothとイーサネット(有線LAN)には接続していないのでリンクローカルアドレスが割り当てられています。デフォルトゲートウェイは
Get-NetIPConfiguration | Foreach IPv4DefaultGateway | Select-Object NextHop
で取得可能。これはゲートウェイそのものを取得するというよりデフォルトルートあてのパケットの次の宛先がどこかを探るという意味合いです。ま、それがデフォルトゲートウェイの意味合いなんですけれども。
次にサブネットマスクですが、
(Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias 'Wi-Fi').PrefixLength
で取得可能。出力は
24
プレフィックスの長さなので24ビットがマスクされるから255.255.255.0となります。