在 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