以下脚本需要安装nbtscan这个工具来实现,在IP地址难统计\MAC地址难统计的可以发挥点作用。唯一的缺点就是遇到一些强的防火墙时,无法通过主机名来获取IP及MAC地址。
生成的IP及MAC地址可以用于做动态的透明防火墙时使用;该脚本可能没有什么实际用途,权当自己练习shell了。
- #!/bin/bash
- #this script will auto getip and auto control
- #made by cheng
- #ctime:2011/02/17
- #version: 1
- #mail:chen_baocheng@ryoyo.com.cn
- if [ ! -d /etc/tcp_control ];then
- mkdir /etc/tcp_control
- fi
- #mkdir /usr/local/nbtscan
- #tar -xzf ./nbtscan-source-1.0.35.gz -C /usr/local/nbtscan
- #cd /usr/local/nbtscan && make
- #nb=/usr/local/nbtscan
- nb=/root/nb
- nbstat=/etc/tcp_control/nbstat
- conf=/etc/tcp_control
- ip_table=/etc/tcp_control/ip_table
- #edit files
- $nb/nbtscan 192.168.10.0/24 -m > $conf/nbstat && \
- sed -i -e "s/WORKGROUP\\\//g" -i -e "s/RYOYO\\\//g" \
- -i -e "s/MSHOME\\\//g" -i -e "s/\\\//g" $conf/nbstat && \
- sed -i "/ERR/d" /ip_table && awk -F " " '{print $1 " " $2 " " $3}' $conf/nbstat > $conf/ip_table
- test -e $conf/ip_control2 || touch $conf/ip_control2 && :> $conf/ip_control2
- test -e $conf/mac_control || touch $conf/mac_control
- test -e $conf/mac_control2 || touch $conf/mac_control2 && :> $conf/mac_control2
- :> $conf/mac_control
- #creat ip_table(version2) and mac_control(version2)
- for i in $(cat /etc/tcp_control/pcname)
- do
- cat $conf/ip_table | grep $i | awk -F " " '{print $1}' | sort | uniq >> $conf/ip_control2
- cat $conf/ip_table | grep $i | awk -F " " '{print $3}' | sort | uniq >> $conf/mac_control2
- done
- #file comparison;system will auto cp file
- if [ -f $conf/ip_control ];then
- a=`diff $conf/ip_control $conf/ip_control2 && echo 0 || echo 1`
- if [ "$a" != "0" ];then
- cp -f $conf/ip_control2 $conf/ip_control
- fi
- else
- touch $conf/ip_control
- fi
- #creat mac_table
- if [ -f $conf/mac_control ];then
- a=`diff $conf/mac_control $conf/mac_control2 && echo 0 || echo 1`
- if [ "$a" != "0" ];then
- cp -f $conf/mac_control2 $conf/mac_control
- fi
- fi
生成的结果是ip_control 这个是正在使用的表,比如iptables调用了里面的IP。 ip_control2 则是最新的IP表,两个表如果不一样,ip_control2将替换ip_control
本来该脚本后面是接了一堆iptables的规则,以便于做动态的或是MAC控制。但因其使用条件有限,不再列出。
> 代表的是导出符号,博客上显示不了大于符号.
转载于:https://blog.51cto.com/myhat/498749