如何从MAC获取IP地址

如何从MAC获取IP地址

我正在尝试连接到二手外部 wifi 摄像头。它有一个以太网插槽和一张带有 MAC 地址的贴纸,但没有其他品牌或型号/序列号。

我正在尝试查找它的 IP 地址。

我当前的计划是直接在我的机器和该相机之间连接以太网电缆,然后使用以下命令扫描所有保留的私有 IPv4 范围nmap

ip addr add 10.0.0.1/8 dev eno2
ip addr add 172.16.0.1/12 dev eno2
ip addr add 192.168.0.1/16 dev eno2

nmap -sn 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8

但这可能需要很长时间(我猜大约 74 小时),并且我无法确定该设备是否未使用 IPv6。有更好的解决方案吗?

答案1

您可以安装DHCP服务器,然后检查其日志以获取摄像机获取的 IP 地址。

或者,您可以运行tcpdump查看 LAN 上正在通信的所有设备。


您可以使用以下命令监控以太网端口tcpdump

sudo tcpdump -A -i eno2

就我而言,我得到以下信息,似乎确认该设备没有 IP 并且确实正在通信(MAC 是正确的)

11:26:29.247184 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from xx:xx:xx:xx:xx:Xx (oui Unknown), length 291

安装并配置 DHCP 服务器:

sudo apt install isc-dhcp-server
sudo ip addr add 192.168.2.1/24 dev eno2

将以下内容添加到`/etc/dhcp/dhcpd.conf

subnet 192.168.2.0 netmask 255.255.255.0 {
  range 192.168.2.10 192.168.2.20;
}

设置INTERFACESv4="eno2"/etc/default/isc-dhcp-server.

sudo systemctl restart ics-dhcp-server.service

现在检查日志以查看是否已颁发任何 IP 地址:

sudo journalctl -u isc-dhcp-server.service
Nov 24 11:31:11 simswe24 systemd[1]: Started LSB: DHCP server.
Nov 24 11:31:12 simswe24 dhcpd[14238]: DHCPOFFER on 192.168.2.10 to xx:xx:xx:xx:xx:xx (BV-CAM06S) via eno2
Nov 24 11:31:12 simswe24 dhcpd[14238]: DHCPREQUEST for 192.168.2.10 (172.16.0.1) from xx:xx:xx:xx:xx:xx (BV-CAM06S) via eno2
Nov 24 11:31:12 simswe24 dhcpd[14238]: DHCPACK on 192.168.2.10 to xx:xx:xx:xx:xx:xx (BV-CAM06S) via eno2

答案2

您可以在设备连接的接口上执行广播 ping:

$ sudo ping -I enp0s31f6 -b 255.255.255.255
WARNING: pinging broadcast address
PING 255.255.255.255 (255.255.255.255) from 192.168.86.32 enp0s31f6: 56(84) bytes of data.
64 bytes from 192.168.86.23: icmp_seq=1 ttl=64 time=6.04 ms
64 bytes from 192.168.86.43: icmp_seq=1 ttl=64 time=190 ms
64 bytes from 192.168.86.135: icmp_seq=1 ttl=64 time=192 ms

如果您直接连接到该设备,那么理想情况下您收到的唯一响应将来自该设备,并且该响应将包含 IP 地址。

编辑

由于对该建议的有效性存在一些疑问,因此我认为添加有关我上面演示的结果的一些细节可能是有价值的。

首先,我要强调的是,我做到了不是收到网络上每台设备的响应,因此此建议显然不适用于所有类型的设备。

接下来,让我们更仔细地查看我确实收到响应的远程主机之一:

64 bytes from 192.168.86.135: icmp_seq=1 ttl=64 time=192 ms

该主机的 MAC 地址是什么?

$ arp -n | grep 192.168.86.135
192.168.86.135       ether   50:c7:bf:b1:f5:9b   C       enp0s31f6

该设备的制造商是什么?

$ grep -i 50c7bf /usr/share/arp-scan/ieee-oui.txt
50C7BF  TP-LINK TECHNOLOGIES CO.,LTD.

我猜这是我家的智能插头之一。

简而言之,某些设备可能会响应,而某些设备可能不会响应,具体取决于其网络堆栈和安全配置。如果不了解您相机的这些细节,就不可能明确地说这是否适合您的情况。

相关内容