在 PowerShell 中獲取 IPv4 地址

Rohan Timalsina 2023年1月30日
  1. 使用 Get-NetIPAddress 將 IPv4 地址獲取到 PowerShell 中的變數中
  2. 使用 Get-NetIPConfiguration 將 IPv4 地址獲取到 PowerShell 中的變數中
  3. 使用 Dns 類 將 IPv4 地址獲取到 PowerShell 中的變數中
  4. 使用 Get-WmiObject 將 IPv4 地址獲取到 PowerShell 中的變數中
  5. 使用 Test-Connection 將 IPv4 地址獲取到 PowerShell 中的變數中
在 PowerShell 中獲取 IPv4 地址

系統管理員可以在 PowerShell 中執行各種任務,包括網路任務。

例如,PowerShell 允許你列出 IP 地址和 IP 配置、ping 計算機、檢索網路介面卡屬性、執行 DHCP 配置任務以及建立/刪除網路共享。

IP 表示 Internet 協議,v4 表示第四版。

IPv4 地址是 32 位整數,用於標識機器上的網路介面。它以點分十進位制表示法表示。

它有四個用句點分隔的 8 位欄位,每個 8 位欄位代表 IPv4 地址的一個位元組。本教程將教你將 IPv4 地址獲取到 PowerShell 中的變數中。

使用 Get-NetIPAddress 將 IPv4 地址獲取到 PowerShell 中的變數中

Get-NetIPAddress cmdlet 獲取 IP 地址配置,例如 IPv4 地址、IPv6 地址和與地址關聯的 IP 介面。

當它不帶引數執行時,它會列印計算機的整個 IP 地址配置。

--AddressFamily 引數用於指定 IP 地址系列的陣列。Get-NetIPAddress 使用此引數獲取與地址系列匹配的 IP 地址配置。

接受的值為 IPv4IPv6

例如,以下命令獲取有關計算機上所有 IPv4 地址的 IP 地址配置的資訊。

Get-NetIPAddress -AddressFamily IPv4

此命令僅將計算機的 IPv4 地址放入變數 $ipv4

$ipv4 = (Get-NetIPAddress | Where-Object {$_.AddressState -eq "Preferred" -and $_.ValidLifetime -lt "24:00:00"}).IPAddress
$ipv4

輸出:

192.168.2.33

你還可以使用以下命令在 PowerShell 中獲取 IPv4 地址。

Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $(Get-NetConnectionProfile | Select-Object -ExpandProperty InterfaceIndex) | Select-Object -ExpandProperty IPAddress

輸出:

192.168.2.33

使用 Get-NetIPConfiguration 將 IPv4 地址獲取到 PowerShell 中的變數中

Get-NetIPConfiguration cmdlet 獲取網路配置,包括 IP 地址和 DNS 伺服器。

此 cmdlet 在不帶任何引數執行時獲取計算機上所有非虛擬連線介面的 IP 配置屬性。

以下命令將 IPv4 地址放入變數 $ipv4

$ipv4 = (Get-NetIPConfiguration | Where-Object {$_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.status -ne "Disconnected"}).IPv4Address.IPAddress
$ipv4

輸出:

192.168.2.33

使用 Dns 類 將 IPv4 地址獲取到 PowerShell 中的變數中

Dns 類 是一個靜態類,它從 Internet 域名系統 (DNS) 獲取有關特定主機的資訊。GetHostAddresses 方法返回指定主機的 IP 地址。

例如,以下命令獲取 LAPTOP-B045GB7Y 的 IPv4 地址,即這臺計算機的裝置名稱。你必須將其替換為你的裝置名稱才能獲得計算機的 IPv4 地址。

$ipv4 = ([System.Net.DNS]::GetHostAddresses('LAPTOP-B045GB7Y') | Where-Object {$_.AddressFamily -eq "InterNetwork"} | select-object IPAddressToString)[0].IPAddressToString
$ipv4

輸出:

192.168.2.33

使用 Get-WmiObject 將 IPv4 地址獲取到 PowerShell 中的變數中

Get-WmiObject cmdlet 獲取 Windows Management Instrumentation (WMI) 類的例項或有關可用 WMI 類的資訊。

Win32_NetworkAdapterConfiguration 是一個 WMI 類,表示網路介面卡的屬性和行為。

你可以執行以下命令將 IPv4 地址獲取到 PowerShell 中的變數 $ipaddr

$ipaddr = (Get-WmiObject -Class Win32_NetworkAdapterConfiguration | where {$_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null}).IPAddress | Select-Object -First 1
$ipaddr

輸出:

192.168.2.33

使用 Test-Connection 將 IPv4 地址獲取到 PowerShell 中的變數中

Test-Connection cmdlet 將 ICMP 回顯請求資料包或 ping 傳送到一臺或多臺計算機並返回回顯響應回覆。它還可以確定是否可以通過 IP 網路聯絡特定計算機。

你可以執行以下命令將 IPv4 地址放入變數 $ipv4

$ipv4 = (Test-Connection -ComputerName (hostname) -Count 1 | Select -ExpandProperty IPv4Address).IPAddressToString
$ipv4

如果你有任何虛擬介面卡,它會返回虛擬介面卡的 IPv4 地址(例如 VPN、Hyper-V、Docker)。

輸出:

192.168.26.1

你也可以使用此命令返回與上述相同的輸出。

(Test-Connection -ComputerName $env:computername -count 1).IPv4Address.IPAddressToString

輸出:

192.168.26.1
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website