avahi是利用mDNS协议的,实现本地网内服务发现的软件,如寻找局域网内的在线用户、打印机等。该技术在 MacOS上最先使用,被称为 Rendezvous, Bonjour或 zeroconf.
下面以 fedora 系统为例,简单说说如何用这个服务发现局域网内的机器。
首先确定系统的 avahi 服务打开。
然后安装 avahi-tools:
# yum install avahi-tools
...
$ rpm -q avahi-tools
avahi-tools-0.6.22-10.fc9.i386
然后执行 avahi-discover 就可以查询局域网内的所有服务,其中服务类型为 _workstation._tcp 的是所有启用 avahi-daemon 的都会注册的服务,用于知道机器是否在局域网内存在。除此之外还有 iTune 音乐共享服务等。
为了能够用脚本监视上线/下线的机器,可以使用 avahi-browse 程序,如:
$ avahi-browse -pt _workstation._tcp
+;br-vms;IPv4;hellwolf-sony\032\09132\0588a\058ea\058ce\058ef\058aa\093;Workstation;local
+;wlan0;IPv4;hellwolf-n810\032\09100\0581d\0586e\058d5\0588b\058a9\093;Workstation;local
+;wlan0;IPv4;hellwolf-sony\032\09100\0581d\058e0\05858\058ba\058e7\093;Workstation;local
-p 选项使输出结果易于用脚本分析,然后你就可以用 shell 脚本每隔1秒分析这段命令的输出,然后执行相关任务了。
另外,如果你查看 /usr/bin/avahi-discover 文件,会发现是一个 python 脚本,依葫芦画瓢就能做一个更好的服务监视程序了。
阅读(3124) | 评论(0) | 转发(0) |