我已连接到开放网络,我可以看到 BSSID 和 SSID,但我不认为 DHCP 已启用,因为我没有获取任何 IP。那么有没有办法远程找出它的 IP 是什么?谢谢
答案1
(假设是 Linux 系统)一旦您获得了 AP 的 MAC 地址,例如通过 iwconfig:
$ iwconfig eth1
eth1 IEEE 802.11g ESSID:"OSU_PUB"
Mode:Managed Frequency:2.427 GHz Access Point: 00:0D:9D:C6:38:2D
Bit Rate=48 Mb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=91/100 Signal level=-39 dBm Noise level=-87 dBm
Rx invalid nwid:0 Rx invalid crypt:860 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:39 Missed beacon:8
AP 具有00:0D:9D:C6:38:2D
硬件地址,因此您可以使用 tcpdump 嗅探来自该硬件地址的流量,这通常迟早会揭示其作为源的 IP 地址:
$ tcpdump -i eth1 -s 0 -v -n ether host 00:0D:9D:C6:38:2D
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
13:15:49.106475 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.1 (00:0D:9D:C6:38:2D) tell 192.168.1.2, length 28
如果 AP 响应广播 ping,您可能可以向其特定的 MAC 地址发送广播 ping 以引发答复,但似乎没有能够做到这一点的工具。
答案2
我想你可以打开无线网卡的混杂模式并启动 wireshark(http://www.wireshark.org/) 这样您就有可能发现网络的子网。
当您看到这样的 TCP 数据包时...
0000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 0010 xx xx xx xx xx xx xx xxc0 a8 01 01 c0 a8 01 002002xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 0030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx
c0 a8 01 01 = 192.168.1.1 和 c0 a8 01 02 = 192.168.1.2....
答案3
最简单的方法通常是netstat -rn
查看默认网关的设置——99.9% 的情况下,这将是您的接入点的 IP 地址。并且该方法适用于 Linux、OS X 或 Windows。
答案4
一句话:
mac=$(iwconfig wlo1 | grep "Access Point:" | awk '{print $6}') && nmap -sP 192.168.1.0/24 | grep $mac
在我的 Linux 系统上,此命令不起作用只是因为iwconfig
MAC 地址有一位数字错误。如果iwconfig
操作正确,则此命令可以完美运行。