1. macOS 终端打印的arp 文档说明
usage: arp [-n] [-i interface] hostname
arp [-n] [-i interface] [-l] -a
arp -d hostname [pub] [ifscope interface]
arp -d [-i interface] -a
arp -s hostname ether_addr [temp] [reject] [blackhole] [pub [only]] [ifscope interface]
arp -S hostname ether_addr [temp] [reject] [blackhole] [pub [only]] [ifscope interface]
arp -f filename
2. 每个命令进行详细解释:
-
arp [-n] [-i interface] hostname:- 作用:查询指定主机的ARP表项。
- 参数:
-n:不执行地址解析,只显示数字格式的地址。-i interface:指定网络接口。hostname:要查询的主机名。
-
arp [-n] [-i interface] [-l] -a:- 作用:显示ARP缓存中的所有条目。
- 参数:
-n:不执行地址解析,只显示数字格式的地址。-i interface:指定网络接口。-l:显示本地主机的ARP缓存。
-
arp -d hostname [pub] [ifscope interface]:- 作用:从ARP缓存中删除指定主机的条目。
- 参数:
hostname:要删除的主机名。pub:删除公共ARP表项。ifscope interface:指定网络接口。
-
arp -d [-i interface] -a:- 作用:清空ARP缓存。
- 参数:
-i interface:指定网络接口。
-
arp -s hostname ether_addr [temp] [reject] [blackhole] [pub [only]] [ifscope interface]:- 作用:手动添加ARP表项。
- 参数:
hostname:要添加的主机名。ether_addr:主机的MAC地址。temp:临时ARP表项。reject:拒绝ARP表项。blackhole:黑洞ARP表项。pub:公共ARP表项。only:只有公共ARP表项。ifscope interface:指定网络接口。
-
arp -S hostname ether_addr [temp] [reject] [blackhole] [pub [only]] [ifscope interface]:- 作用:强制添加ARP表项,如果表项已存在则更新。
- 参数同上。
-
arp -f filename:- 作用:从指定文件中读取ARP表项并加载到ARP缓存中。
- 参数:
filename:包含ARP表项的文件名。
这些命令可以让用户管理ARP缓存,包括查询、添加、删除ARP表项,以及清空ARP缓存等操作。
假设我们有一个局域网,其中有两台主机:主机A和主机B。现在我们将使用arp命令来进行一些操作:
-
查询主机B的ARP表项:
arp -n -i en0 hostB这条命令将在网络接口
en0上查询主机B的ARP表项。 -
显示本地主机的ARP缓存:
arp -l -a这条命令将显示本地主机的ARP缓存中的所有条目。
-
删除主机B的ARP表项:
arp -d hostB这条命令将从ARP缓存中删除主机B的条目。
-
清空ARP缓存:
arp -d -a这条命令将清空本地主机的ARP缓存。
-
手动添加主机C的ARP表项:
arp -s hostC 00:11:22:33:44:55这条命令将手动添加主机C的ARP表项,MAC地址为
00:11:22:33:44:55。 -
强制添加或更新主机D的ARP表项:
arp -S hostD 11:22:33:44:55:66这条命令将强制添加或更新主机D的ARP表项,MAC地址为
11:22:33:44:55:66。 -
从文件中加载ARP表项: 假设我们有一个名为
arp_entries.txt的文件,内容如下:hostE 22:33:44:55:66:77 hostF 33:44:55:66:77:88我们可以使用以下命令从文件中加载ARP表项:
arp -f arp_entries.txt这将从文件中读取ARP表项并加载到ARP缓存中。