我用scapy构建了一个简单的网络发现工具。但是我遇到了一个问题。该工具将找到iPhone,然后再次尝试扫描网络,尽管iPhone仍然在线并正在观看一些youtube视频,但它不会出现。它将找到网络上的所有其他设备。
我还构建了一个简单的工具,该工具使用arp获取ip的mac地址。这似乎也不起作用。我曾尝试在多部iPhone上执行此操作,但似乎不适用于其中任何一部。
这是从ip获取mac地址的功能。我只是将此arp发送到用户定义范围内的每个ip。如果结果不是全部,请将其添加到找到的设备列表中。
def mac_getter(IP, tio):
ans, unans = srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=IP), timeout=tio,inter=0.2, verbose=0)
sys.stdout.write("Trying {0} \r".format(ip))
sys.stdout.flush()
for send, receive in ans:
return receive.sprintf(r"%Ether.src%")
我知道iPhone的本地IP是192.168.1.88,但是未在找到的设备中列出。我还尝试使用netdiscover扫描网络,但确实找到了iPhone。