我想知道哪些机器连接到我的家庭网络。我的想法是建立一个 MySQL 数据库,其中包含每台机器的条目,以及我上次看到它的时间戳以及我见过它的次数的记录。这很简单。我的问题是如何扫描 MAC?我考虑过每 30 分钟运行一次这样的操作:
#! /usr/bin/python
import nmap
nm = nmap.PortScanner()
nm.scan(hosts='10.10.10.0/24', arguments='-n -sP -PE)
hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
for host, status, mac in hosts_list:
save(host,status,mac)
... 但为了获得 MAC,我需要将其作为 运行root
。
- 有没有更好的方法可以做到这一点?(我也考虑过是否能从路由器获取 DHCP 记录,但这样就找不到任何固定 IP 设备)
- 我可以使用其他工具吗?
- 我可以以 root 身份在 cron 中运行脚本吗?
答案1
从 Windows 命令行:arp -a 将为您提供当前网络上每个系统的 IP 和 MAC 地址。