「Linux」- 从MAC地址中获取IP地址

方法一、ping & arp

向ping一次目标主机,然后使用arp命令:

#!/bin/sh

ping -c 7 "<ip-address>"
# !!!fping!!!
# 如果有有必要的话,可以使用fping -g "<ip-address>/<prefix>"来探测整个网段
# 仅打印可达主机:fping -g "<ip-address>/<prefix>" 2>/dev/null

arp -an | grep "<ip-address>"

方法二、arping

#!/bin/sh

arping -I <interface> <host>

# !!!「arping」有两个版本:一个是iputils;另一个Thomas Habets开发,功能更多。

方法三、namp

有些主机可能屏蔽了ICPM报文,所以使用ping可能会无效。

可以使用nmap来扫描服务:

#!/bin/sh

nmap -sP -PE -PA21,23,80,3389 192.168.1.*
# -sP 跳过端口扫描
# -PE 使用ICMP echo request行为
# -PA 扫描特定的端口
# 192.168.1.* 网段

参考文献

Resolving MAC Address from IP Address in Linux
Arping – To Discover Hosts on a Computer Network
Wikipedia/arping
fping usage to show only reachble hosts