Регистрация MAC всех машин в моей сети

334
Jonas Stumph Stevnsvig

Я хотел бы знать, какие машины подключаются к моей домашней сети. Я думал о том, чтобы иметь базу данных 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)
  • Могу ли я использовать другой инструмент?
  • Есть ли какие-либо меры безопасности, которые я могу предпринять, запустив скрипт в cron от имени root?
0
Используйте [arpwatch] (https://ee.lbl.gov/). Ipor Sircer 3 года назад 3
arpwatch выглядит как правильное решение. @IporSircer вы отправите ответ, чтобы я мог принять его? Jonas Stumph Stevnsvig 3 года назад 0

2 ответа на вопрос

1
James Deal

Из командной строки Windows: arp -a предоставит вам IP-адрес и MAC-адрес каждой системы в вашей сети.

Записи таблицы ARP делают тайм-аут. Ron Maupin 3 года назад 0
Вот почему вы часто проверяете их и проверяете их на маршрутизаторе (а не на каком-то случайном ПК). Это все еще более надежно, чем пинг-сканы. (Хотя было бы наиболее надежным напрямую регистрировать сообщения ARP.) grawity 3 года назад 0
-3
Mick
Я не только после списка. Мой код работает Nmap, через API / оболочки. Jonas Stumph Stevnsvig 3 года назад 0