- 论坛徽章:
- 0
|
经过几天在SHELL版的学习,综合大家的作品,弄了一个小脚本如下
- for i in `cat ip.txt`; do
- bios=`nmblookup -A $i |sed -e '1d' -e '3,/*/d'|cut -f2|cut -d' ' -f1`
- ping -c 1 -w 1 $i 2>&1 >/dev/null
- if [ $? -ne 0 ]; then
- printf "%-16s xxxxxxxxxxxxxxxxxxxxxxxx\n" $i
- else
- printf "%-16s %-18s is alive\n" $i $bios
- fi
- done
复制代码
文件ip.txt中是IP地址的列表,一行一个。
它的结果是这样的:
- 192.168.1.1 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.2 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.3 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.4 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.5 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.6 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.7 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.8 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.9 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.10 XINXIKE is alive
- 192.168.1.11 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.12 XXK3 is alive
- 192.168.1.13 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.14 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.15 RD4 is alive
- 192.168.1.16 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.17 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.18 R&D is alive
- 192.168.1.19 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.20 xxxxxxxxxxxxxxxxxxxxxxxx
- 192.168.1.21 xxxxxxxxxxxxxxxxxxxxxxxx
- ...
复制代码
但最大的缺点就是太慢了,特别是遇到没有在线的主机就会停上好一会,
哪位大牛能改进一下,让它执行的快点儿。 |
|