Notificação Quando alguém se conecta à minha rede local, ARP, arquivo de notificação

1


Eu tenho uma pergunta sobre o Ubuntu 12.04 LTS Desktop - notificações (mesma notificação como aplicação Rhythmbox ao reproduzir música e para trás), tecnicamente, se não me engano, deve ser chamado de "freedesktop.Notifications.service". Eu só quero adicionar notificações quando um dos meus dispositivos, como; laptop, telefone, tablet conectar à minha rede local. Minha configuração é a seguinte:

Eu tenho um roteador sem fio. Meu roteador está conectado diretamente ao meu computador desktop com um fio, estou usando LAN, os outros dispositivos se conectam através de WI-FI.

Por exemplo, digamos:

O endereço IP do meu roteador : 192.168.1.1 & amp; Endereço MAC XX: XX: XX: XX: XX: XX

Eu - como servidor - 192.168.1.101 & amp; Endereço MAC YY: YY: YY: YY: YY: YY

Smartphone - 192.168.1.102 & amp; Endereço MAC ZZ: ZZ: ZZ: ZZ: ZZ: ZZ

Laptop - 192.168.1.103 & amp; Endereço MAC KK: KK: KK: KK: KK: KK

  • O que eu quero fazer é simples; adicione esses endereços IP junto com seus endereços MAC no ARP e finalmente modifique o arquivo de notificação, sempre que esses dispositivos se conectarem à minha rede local, eu serei notificado. É isso.

P.S: Eu disse "ARP" . No entanto, não tenho certeza se é adequado, suponho que tenha algo a ver com arquivo de configuração ARP e arquivo de notificação . Qualquer sugestão usando terminal ou outra aplicação será aceitável.

Eu serei muito grato se alguém puder me ajudar.

    
por ggalaxy 31.12.2013 / 23:28

1 resposta

0

Você pode enviar notificações usando notify-send yourmessage , mas o que você quer fazer é um pouco estranho.

Seu roteador é o que controla as conexões, uma conexão com sua rede não será registrada ou notada pelo seu computador, a menos que o dispositivo realmente conecte / interaja com seu computador. É claro que você poderia estar fazendo um monitor analisando regularmente a rede como:

nmap -sn 192.168.1.*

e depois ler seus dados daqui (ou arp, porque agora você pode encontrá-los lá). Mas basicamente o dispositivo para monitorar conexões é o seu roteador, não o seu pc.

Se o seu roteador suportar, você poderá analisar o log do roteador para o syslog do seu pc. Agora você recebe uma mensagem no syslog quando uma conexão é feita, o que você pode enviar para o seu ambiente de trabalho, se quiser.

Mas para responder a pergunta , adicione um script ao seu cron que faça um nmap -sn, canalize este para o arquivo temporário e compare isso com a situação anterior usando o diff. Diff out significa offline, diff in significa online.

Um exemplo aproximado (manipula apenas a primeira alteração de ip por execução):

#!/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
    
por Requist 01.01.2014 / 21:04