Get-NetNeighbor 是 PowerShell 中的一个命令,用于检索和显示网络邻居信息,包括 ARP (地址解析协议) 缓存表中的条目。ARP 缓存表存储了 IP 地址与 MAC 地址之间的映射关系,它是网络通信中实现 IP 地址到硬件地址(如 MAC 地址)转换的重要组成部分。
使用 Get-NetNeighbor 命令可以列出本地系统的 ARP 缓存表,其中包含了与本地系统通信过的远程主机的 IP 地址、MAC 地址以及其他相关信息。
这个命令的输出通常包括以下列信息:
ifIndex :接口索引,标识与网络接口相关联的唯一编号。
Get-NetNeighbor 命令用于检索与网络相关的邻居信息,如 IP 地址、MAC 地址等。在你的命令中,似乎你尝试使用 ifIndex 参数来过滤结果,但是该命令并不支持直接使用接口索引来查询邻居信息。
要根据接口索引查询邻居信息,你可以尝试使用以下命令:
Get-NetNeighbor | Where-Object { $_.InterfaceIndex -eq <接口索引> }
这将返回与指定接口索引相关联的邻居信息。请将 <接口索引> 替换为你要查询的实际接口索引值。
|
IPAddress :远程主机的 IP 地址。
LinkLayerAddress :远程主机的 MAC 地址。
State :邻居状态,如 Reachable(可达)、Stale(陈旧)等。
使用 Get-NetNeighbor 命令可以帮助诊断网络连接问题,了解本地系统与其他主机之间的通信状态,以及检查 ARP 缓存表中的条目是否正确。
|
Get-NetNeighbor 命令可以使用多种参数来过滤和定制输出。以下是一些常用的参数:
-
-AddressFamily :指定地址族,可以是 IPv4 或 IPv6。默认为 IPv4。
-
-InterfaceIndex :指定网络接口的索引,只显示指定接口的 ARP 缓存。
-
-IPAddress :指定要检索 ARP 缓存的特定 IP 地址。
Get-NetNeighbor -IPAddress 192.168.1.1
ifIndex IPAddress LinkLayerAddress State PolicyStore ------- --------- ---------------- ----- -----------
|
-
-State :指定要检索的邻居状态,例如 Reachable、Stale、Incomplete 等。
Get-NetNeighbor 命令的 -State 参数支持的值是预定义的邻居状态。这些预定义的邻居状态包括:
Reachable :表示邻居是可达的,可以与之通信。
Stale :表示邻居条目存在,但已过期,不建议使用。
Delay :表示邻居正在等待确认。
Probe :表示正在向邻居发送探测以确认其状态。
Invalid :表示邻居条目无效。
Unreachable :表示无法与邻居通信。
Incomplete :表示邻居条目不完整或未知。
因此,当使用 -State 参数时,你需要指定这些预定义状态值中的一个作为参数。例如:
Get-NetNeighbor -State Reachable
这将列出所有状态为 "Reachable" 的邻居信息。
|
Get-NetNeighbor -State Reachable
ifIndex IPAddress LinkLayerAddress State PolicyStore ------- --------- ---------------- ----- -----------
|
Get-NetNeighbor -State stale
ifIndex IPAddress LinkLayerAddress State PolicyStore ------- --------- ---------------- ----- -----------
|
|
-
-Protocol :指定要检索的邻居协议类型,例如 ICMP、UDP、TCP 等。
-
-LinkLayerAddress :指定要检索的邻居链路层地址(MAC 地址)。
-
-PolicyStore :指定要使用的 IP 策略存储。
-
-AddressFamily :指定要检索的地址族类型,如 IPv4 或 IPv6。
你可以根据需要使用这些参数来过滤和定制 Get-NetNeighbor 命令的输出。例如,如果你只想查看特定网络接口的 ARP 缓存,可以使用 -InterfaceIndex 参数
|
Get-NetNeighbor 命令的全部参数包括:
-
-AddressFamily :指定要检索的地址族类型,可以是 IPv4 或 IPv6。
提供 -AddressFamily 参数来获取邻居信息:
Get-NetNeighbor -AddressFamily IPv4
Get-NetNeighbor -AddressFamily IPv4
ifIndex IPAddress LinkLayerAddress State PolicyStore ------- --------- ---------------- ----- -----------
|
或者:
Get-NetNeighbor -AddressFamily IPv6
Get-NetNeighbor -AddressFamily IPv6
ifIndex IPAddress LinkLayerAddress State PolicyStore ------- --------- ---------------- ----- -----------
|
这将使命令只返回与指定地址族类型相关的邻居信息。
|
-
-InterfaceIndex :指定要检索的网络接口的索引号码。
-
-IPAddress :指定要检索的特定 IP 地址。
-
-State :指定要检索的邻居状态,例如 Reachable、Stale、Incomplete 等。
-
-LinkLayerAddress :指定要检索的邻居的链路层地址(MAC 地址)。
查询具有特定链路层地址的邻居信息,你应该先获取目标设备的链路层地址(MAC 地址),然后使用 -LinkLayerAddress 参数来指定该地址进行查询。例如:
Get-NetNeighbor -LinkLayerAddress "目标设备的MAC地址"
这样就可以查询到具有指定链路层地址的邻居信息。
Get-NetNeighbor -LinkLayerAddress "目标设备的MAC地址"
ifIndex IPAddress LinkLayerAddress State PolicyStore ------- --------- ---------------- ----- -----------
|
|
-
-PolicyStore :指定要使用的 IP 策略存储。
-
-CimSession :指定用于操作的 CIM 会话。
该参数允许你指定一个或多个 CIM 会话,以执行命令的远程操作。
你可以通过以下方式提供 -CimSession 参数来获取邻居信息:
Get-NetNeighbor -CimSession $yourCimSession
其中 $yourCimSession 是你已经建立的一个 CIM 会话对象。
|
-
-ThrottleLimit :指定并发操作的限制。
过以下方式提供 -ThrottleLimit 参数来获取邻居信息:
Get-NetNeighbor -ThrottleLimit 100
这将使命令一次性处理最多 100 个邻居信息。你可以根据需要调整这个数字。
Get-NetNeighbor -ThrottleLimit 100
ifIndex IPAddress LinkLayerAddress State PolicyStore ------- --------- ---------------- ----- -----------
|
这些参数允许用户根据需要过滤和定制 Get-NetNeighbor 命令的输出。例如,你可以使用 -InterfaceIndex 参数指定要检索的网络接口,或使用 -State 参数指定要检索的邻居状态。
|
PowerShell 中可以使用 Get-NetNeighbor
命令来实现类似于 Windows 中 arp -a
的功能,用于显示本地系统的 ARP 缓存表。以下是如何在 PowerShell 中执行类似 arp -a
的操作:
Get-NetNeighbor
这个命令会列出本地系统的 ARP 缓存表,显示每个 IP 地址对应的 MAC 地址以及其他相关信息,类似于 Windows 中 arp -a
命令的输出。
Get-NetNeighbor
索引号(ifIndex)、IP 地址(IPAddress)、链路层地址(LinkLayerAddress)、状态(State)和策略存储(PolicyStore)
ifIndex IPAddress LinkLayerAddress State PolicyStore ------- --------- ---------------- ----- -----------
|
Get-NetNeighbor
返回本地系统的邻居关系表,该表列出了系统中已知的网络邻居的信息,包括其接口索引号(ifIndex)、IP 地址(IPAddress)、链路层地址(LinkLayerAddress)、状态(State)和策略存储(PolicyStore)。
如果你想过滤特定接口的 ARP 缓存表,你可以使用 InterfaceIndex
参数,例如:
Get-NetNeighbor -InterfaceIndex <InterfaceIndex>
其中 <InterfaceIndex>
是你想要过滤的网络接口的索引号。你可以使用 Get-NetAdapter
命令来查看所有网络接口及其对应的索引号。