如何找出一台只有网口的设备的IP?

背景

制造业的小伙伴们经常遇到一个问题,就是拿到一台待调试的设备,没有显示器、键鼠等交互接口,也没有串口可供连接,有网口但不知道设备的IP,所以没法ssh登上去操控,咋办?

思路:wireshark抓包

情况1 设备有静态IP地址

首先要找来一台PC机,将设备跟该PC机直连,这样就避免了办公室或实验室局域网的干扰,PC机侧收到的网络包只可能来自设备和自身。

然后在PC机上启动抓包软件wireshark,抓取目标设备发送的查询网关MAC地址的ARP包,如果设备配了静态IP,就会在ARP包的相应协议字段里显示的。
wireshark选择监听跟设备直连的那个网口,然后找到ARP包:
ARP包
这里能看出有台网络打印机HewlettP(目标设备)在广播询问网关192.168.26.1的MAC地址,并附上自己的IP 192.168.26.78,这样我们就知道打印机的IP了。

最后在ARP包的info列找到设备IP
找到Sender IP address

情况2 设备没有静态IP,但支持DHCP

  1. 在PC机上安装TFTPd等DHCP服务器软件,启动该服务器
  2. 启动wireshark,然后同样抓取直连目标设备的网口
  3. 目标设备开机,从抓取的包里找到DHCP包,里面就有目标设备获取的IP

情况3 设备没有静态IP,也不会自动发起DHCP

这种情况比较复杂,可能是消费电子类设备,支持RDP(ICMP Router Discovery Protocol)协议,它们上电后会先广播router solicitation包(附带自己的MAC地址),路由器会响应该报文,并进入DHCP配置阶段,但TFTPd等软件并不会响应该包,因此也就无法触发TFTPd的DHCP服务。
此时我们就要:

  1. PC直连设备并根据抓到的router solicitation包获得其MAC地址
  2. 找来一台闲置的路由器,将PC机和目标设备都连接到闲置路由器上
  3. 抓包过滤器这样配置eth.addr == fe:87:dd:7c:d2:81,这样就能看到目标设备跟路由器的交互过程了
  4. 交互信息里有一条查询网关MAC地址的请求包,里面就有目标设备的IP
    抓取ARP包
    上面截图第一条消息就是RDP包,即DHCP服务器发现协议,里面附带了设备的MAC地址,这条消息是直连PC时也会发的,但第5、6条消息必须是设备收到路由器的Neighbor Solicitation应答包(第3条消息)后才会发出的,所以必须将设备和PC都接到路由器才行。

如果你实在找不到闲置路由器,PC上装个connectify等虚拟路由器应该也能发出上述第3条消息,但我没试过,因为这个软件收费😂

贴士

很多人觉得用抓包软件太兴师动众了,直接arp -a不就能看到局域网内所有设备的IP和MAC了吗?
其实arp只能显示本机的arp缓存,而IP写入缓存的前提是两台主机发生过传输,现在我们都不知道设备的IP,根本无法建立传输,设备IP自然不会出现在arp缓存里了。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值