如何你经常使用 Windows,或多或少可能在 cmd 中使用过 IPConfig、Ping 和 NSLookup 这 3 个非常常用的网络命令,其实在 Powershell 中也有等效的网络命令可供使用。
IPConfig
IPConfig 命令用来查看 Windows 中每个网卡的 TCP/IP 配置信息,在 PowerShell 中有如下 2 条命令与其功能类似:
PS C:\> Get-NetIPConfiguration | select InterfaceIndex, InterfaceAlias, IPv4Address, InterfaceDescription
InterfaceIndex InterfaceAlias IPv4Address InterfaceDescription
-------------- -------------- ----------- --------------------
23 vEthernet (Default Switch) {XXX.XXX.XXX.XXX} Hyper-V Virtual Ethernet Adapter
3 Ethernet 3 {XXX.XXX.XXX.XXX } Cisco AnyConnect Secure Mobility Client Virtual Miniport Adapter for Windows x64
8 Wi-Fi {192.168.3.8} Intel(R) Dual Band Wireless-AC 8265
14 Ethernet {XXX.XXX.XXX.XXX} Intel(R) Ethernet Connection (4) I219-LM
PS C:\> Get-NetIPAddress -AddressFamily IPv4 | select InterfaceIndex,InterfaceAlias, IPv4Address, PrefixLength
InterfaceIndex InterfaceAlias IPv4Address PrefixLength
-------------- -------------- ----------- ------------
23 vEthernet (Default Switch) XXX.XXX.XXX.XXX 28
3 Ethernet 3 XXX.XXX.XXX.XXX 19
11 Local Area Connection* 2 XXX.XXX.XXX.XXX 16
9 Local Area Connection* 1 XXX.XXX.XXX.XXX 16
14 Ethernet XXX.XXX.XXX.XXX 16
8 Wi-Fi 192.168.3.8 24
1 Loopback Pseudo-Interface 1 127.0.0.1 8
Get-NetIPConfiguration 可以直接获取当前计算机中每块网卡的TCP/IP配置信息,Get-NetIPAddress 用于获取当前计算机的所有IP地址配置信息。
Ping
PowerShell 可以使用 Test-Connection 和 Test-NetConnection 获取与 Ping 命令等效的网络连接诊断信息,它们可以在 DNS 查询到 IP 地址之后进行 TCP 连接测试,并输出测试结果。Test-NetConnection 还可以使用 -TraceRoute 参数获取路由的路径和跳数,该功能相当于 tracert 命令。
PS C:\> Test-Connection www.baidu.com | ft -AutoSize
Source Destination IPV4Address IPV6Address Bytes Time(ms)
------ ----------- ----------- ----------- ----- --------
XXXXXXXXXX www.baidu.com 180.101.49.12 32 12
XXXXXXXXXX www.baidu.com 180.101.49.12 32 12
XXXXXXXXXX www.baidu.com 180.101.49.12 32 12
XXXXXXXXXX www.baidu.com 180.101.49.12 32 26
PS C:\> Test-NetConnection www.baidu.com
ComputerName : www.baidu.com
RemoteAddress : 180.101.49.11
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.3.8
PingSucceeded : True
PingReplyDetails (RTT) : 12 ms
PS C:\> Test-NetConnection www.baidu.com -TraceRoute
ComputerName : www.baidu.com
RemoteAddress : 180.101.49.11
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.3.8
PingSucceeded : True
PingReplyDetails (RTT) : 11 ms
TraceRoute : 192.168.3.1
192.168.1.1
0.0.0.0
61.152.11.1
0.0.0.0
0.0.0.0
58.213.94.82
0.0.0.0
58.213.96.110
0.0.0.0
0.0.0.0
0.0.0.0
0.0.0.0
180.101.49.11
NSLookup
Powershell 中可以使用 Resolve-DnsName 来等效 NSLookup 进行 DNS 名称查询,与 NSLookup 交互式使用方法不同的是,Resolve-DnsName 可以直接跟像 -Server 这样的参数来指定要查询的 DNS 服务器,非常方便。
PS C:\> Resolve-DnsName www.baidu.com
Name Type TTL Section NameHost
---- ---- --- ------- --------
www.baidu.com CNAME 698 Answer www.a.shifen.com
Name : www.a.shifen.com
QueryType : A
TTL : 163
Section : Answer
IP4Address : 180.101.49.11
Name : www.a.shifen.com
QueryType : A
TTL : 163
Section : Answer
IP4Address : 180.101.49.12
Name : a.shifen.com
QueryType : SOA
TTL : 110
Section : Authority
NameAdministrator : baidu_dns_master.baidu.com
SerialNumber : 2007260007
TimeToZoneRefresh : 5
TimeToZoneFailureRetry : 5
TimeToExpiration : 2592000
DefaultTTL : 3600
PS C:\> Resolve-DnsName www.baidu.com -Server 8.8.8.8
Name Type TTL Section NameHost
---- ---- --- ------- --------
www.baidu.com CNAME 272 Answer www.a.shifen.com
www.a.shifen.com CNAME 272 Answer www.wshifen.com
Name : www.wshifen.com
QueryType : A
TTL : 162
Section : Answer
IP4Address : 104.193.88.123
Name : www.wshifen.com
QueryType : A
TTL : 162
Section : Answer
IP4Address : 104.193.88.77
Name : wshifen.com
QueryType : SOA
TTL : 243
Section : Authority
NameAdministrator : baidu_dns_master.baidu.com
SerialNumber : 2007230001
TimeToZoneRefresh : 60
TimeToZoneFailureRetry : 30
TimeToExpiration : 2592000
DefaultTTL : 3600
更多参考
- Basic networking powershell cmdlets cheatsheet to replace netsh, ipconfig, nslookup and more
- Superping – powershell test-netconnection