如何探测一个局域网中哪些IP地址被占用?

    文章来源:万象互联 更新时间:2012-9-17 16:19:03
分享:

shell脚本如下:

#!/bin/bash

#Usage: $0 [Ntework] [Start] [End]

#注:该脚本的作用是检测${Network}.${Start}到${Network}.${End}

#这些IP地址中哪些IP地址已被占用,将被占用的IP地址输出到指定的输

#出文件中.

#默认若没有在命令行中指定Network则默认使用本机所在的网络

#若没在命令行中指定Start(开始的IP地址)则默认使用为1

#若没有在命令行中指定End(结束的IP地址)则默认使用255

#

#Author:huangyandong

#Web:http://huangyandong.blog.51cto.com/

#History:2011/10/20 release 1.0

#

 

#变量设置

#指定获取的网络接口名

DEV=eth0

#指定ping的次数,默认为1

COUNT=1

#指定将被占用的地址保存的文件

OUTPUT=ip.active

 

#获取本地IP

localip=$(ifconfig $DEV | grep 'inet addr'|cut -d":" -f2 |gawk '{print $1}')

#获取本地网路,采取的办法是去掉最后一个字段(含'.'号)

localnetwork=${localip%.*}

#可以在命令行中指定探测的网络号,若没指定则默认使用本地主机所在网络

whichnetwork=${1:-${localnetwork}}

#可以在命令行中指定ping的起始地址

start=${2:-1}

#可以在命令行中指定ping的结束地址

end=${3:-255}

 

 

for i in $(seq $start $end);do

ping -c $COUNT ${whichnetwork}.${i} 1>/dev/null 2>&1 && echo ${whichnetwork}.${i} >> $OUTPUT

done

文章来源:http://www.hulian.top,转载请注明!

版权说明:本站原创文章,由万象互联SEO优化发表.
本文地址:https://www.hulian.top/zixun/post/5190.html
在线咨询
  • 在线时间
  • 8:00-21:00