Chinaunix首页 | 论坛 | 博客
  • 博客访问: 386413
  • 博文数量: 80
  • 博客积分: 1750
  • 博客等级: 上尉
  • 技术积分: 1380
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-13 11:35
文章分类
文章存档

2014年(3)

2013年(1)

2012年(54)

2011年(22)

分类: Python/Ruby

2012-12-07 10:48:33

     试想一下,若要检查一个局域网的联通性,最长用的就是ping IP。如果局域网有很多台主机,也要一台台的ping?此脚本就可以简单的解决这样的问题,通过制定netid  hostid的区间,就可以对指定的网段进行扫描检测。屏幕上会有输出检测的信息,所有检测到的已经联通的主机的MAC和主机名会被重定向到"运行时间.log"的文件中。
 

#netscan.sh内容如下
  1. #!/bin/bash
  1. #Filename: netscan.sh
  2. #Functions: 局域网主机联通性的扫描
  3. #Author: yanghao

  4. network=$1
  5. time=$(date +%H%M%S)

  6. for i in $(seq $2 $3)
  7. do
  8.     ping -c 1 -w 2 $network.$i > /dev/null
  9.     if [ $? -eq 0 ]; then
  10.           arp $network.$i | grep ":" | awk '{print $1,$3}' >> $time.log
  11.           echo "host $network.$i is up"
  12.    else
  13.           echo "host $network.$i is down"
  14.    fi
  15. done
运行输出如下:
  1. stack@stack-G31M-ES2C:~/Desktop$ ./netscan.sh 192.168.1 100 120
  2. host 192.168.1.100 is down
  3. host 192.168.1.101 is down
  4. host 192.168.1.102 is down
  5. host 192.168.1.103 is down
  6. host 192.168.1.104 is down
  7. host 192.168.1.105 is down
  8. host 192.168.1.106 is down
  9. host 192.168.1.107 is down
  10. host 192.168.1.108 is down
  11. host 192.168.1.109 is down
  12. host 192.168.1.110 is up
  13. host 192.168.1.111 is up
  14. host 192.168.1.112 is down
  15. host 192.168.1.113 is down
  16. host 192.168.1.114 is up
  17. host 192.168.1.115 is up
  18. host 192.168.1.116 is down
  19. host 192.168.1.117 is down
  20. host 192.168.1.118 is up
  21. host 192.168.1.119 is down
  22. host 192.168.1.120 is down
重定向文件里面将会写有已联通主机的主机名和MAC。





阅读(5576) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~