У меня вопрос по поводу рабочего стола Ubuntu 12.04 LTS - уведомления (то же, что и приложение Rhythmbox при воспроизведении музыки назад и вперед), технически, если я не ошибаюсь, его следует назвать «freedesktop.Notifications. оказание услуг". Я просто хочу добавить уведомления, когда одно из моих устройств, таких как; ноутбук, телефон, планшет подключиться к моей локальной сети. Моя конфигурация следующая:
У меня есть беспроводной маршрутизатор. Мой маршрутизатор подключен напрямую к настольному компьютеру с помощью провода, я использую LAN, другие устройства подключаются через WI-FI.
Например, скажем:
IP-адрес моего маршрутизатора : 192.168.1.1 & MAC-адрес XX: XX: XX: XX: XX: XX
Me - как сервер - 192.168.1.101 и MAC-адрес ГГ: ГГ: ГГ: ГГ: ГГ: ГГ
Смартфон - 192.168.1.102 и MAC-адрес ZZ: ZZ: ZZ: ZZ: ZZ: ZZ
Портативный компьютер - 192.168.1.103 и MAC адрес KK: KK: KK: KK: KK
П.С .: Я сказал «ARP» . Однако я не уверен, подходит ли он, я просто предполагаю, что он как-то связан с файлом конфигурации ARP и файлом уведомления . Любое предложение с использованием терминала или другого приложения будет приемлемым.
Я буду очень признателен, если кто-нибудь сможет мне помочь.
Вы можете отправлять уведомления, используя notify-send yourmessage
, но то, что вы хотите сделать, немного странно.
Ваш маршрутизатор - это тот, кто обрабатывает соединения, соединение с вашей сетью не будет регистрироваться или замечаться вашим компьютером, если устройство фактически не подключается к вашему компьютеру и не взаимодействует с ним. Конечно, вы можете сделать монитор, регулярно сканируя сеть, например:
nmap -sn 192.168.1.*
, а затем читайте ваши данные отсюда (или arp, потому что теперь вы можете найти их там). Но в основном устройством для мониторинга подключений является ваш маршрутизатор, а не компьютер.
Если ваш маршрутизатор поддерживает это, вы можете проанализировать регистрацию маршрутизатора в системном журнале вашего компьютера. Теперь при установлении соединения вы получаете сообщение в системном журнале, которое затем можете отправить в среду рабочего стола, если хотите.
Но чтобы ответить на вопрос , добавьте в ваш cron скрипт, который будет выполнять nmap -sn, передайте его во временный файл и сравните с предыдущей ситуацией, используя diff. Diff out означает оффлайн, diff in означает онлайн.
Грубый пример (обрабатывает только первое изменение ip за прогон):
#!/bin/bash
#
#Script to monitor the network and put changes to notification
#
#Save previous scan
cp scan.txt previousscan.txt
#get numeric list of online hosts
nmap -n -sn 192.168.178.* > scan.txt
#collect the difference, only the lines with ip-numbers
message=$(diff previousscan.txt scan.txt | grep 192)
#get first char which indicates if the host came up or went away
iostring="${message:0:1}"
#get first ip-number from the list
computer="${message:23:17}"
#show ip-number in notify if host came up
if [ "$iostring" = \> ]; then
notify-send "$computer online"
fi
#show ip-number in notify if host went away
if [ "$iostring" = \< ]; then
notify-send "$computer offline"
fi