我有一个关于Ubuntu 12.04 LTS Desktop的问题-通知(来回播放音乐时与Rhythmbox应用程序相同的通知),从技术上来说,如果我没有记错的话,它应该称为“ freedesktop.Notifications.service”。我只想在我的其中一台设备(例如;)上添加通知。笔记本电脑,手机,平板电脑连接到我的本地网络。我的配置如下:
我有一个无线路由器。我的路由器通过电线直接连接到台式计算机,我使用的是LAN,其他设备通过WI-FI连接。
例如,假设:
我的路由器的IP地址:192.168.1.1和MAC地址XX:XX:XX:XX:XX:XX
我-作为服务器-192.168.1.101和MAC地址YY:YY:YY:YY:YY :YY
智能手机-192.168.1.102和MAC地址ZZ:ZZ:ZZ:ZZ:ZZ:ZZ
笔记本电脑-192.168.1.103和MAC地址KK:KK:KK:KK:KK:KK
PS:我说“ ARP”。但是,我不确定它是否合适,我只是假设它与ARP配置文件和通知文件有关。使用终端或其他应用程序的任何建议都是可以接受的。
如果有人可以帮助我,我将不胜感激。
您可以使用来发送通知,notify-send yourmessage
但是您想要做的事情有点奇怪。
路由器是处理连接的路由器,除非设备实际连接到计算机或与计算机交互,否则计算机不会记录或注意到与网络的连接。当然,您可以通过定期扫描网络来制作监视器,例如:
nmap -sn 192.168.1.*
然后从此处(或arp,因为现在您可以在此处找到它们)读取数据。但基本上,用于监视连接的设备是您的路由器,而不是您的PC。
如果您的路由器支持它,则可以将路由器的日志记录解析为PC的syslog。现在,建立连接后,您会在系统日志中看到一条消息,然后您可以根据需要将其发送到桌面环境。
但是要回答这个问题,请向您的cron中添加一个脚本,该脚本将执行nmap -sn,将其通过管道传输到temp文件,并使用diff将其与以前的情况进行比较。差异表示离线,差异表示在线。
一个粗略的示例(每次运行仅处理第一个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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句