一个bash脚本

本文介绍了一个 Bash 脚本,用于从 APNIC 统计网站下载 IPv4 地址分配数据,计算子网掩码,并将来自中国的 IP 地址按运营商分类保存。
#!/bin/bash

dir=/tmp
file=$dir/ip_apnic
rm -f $file

#下载文件并输出到 $file
wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $file
grep 'apnic|CN|ipv4|' $file| cut -f 4,5 -d '|'| sed 's/|/ /g'| while read ip cnt
do
#echo "$ip, $cnt"
#将 $cnt 送到 bc 程序计算
mask=$(cat<<EOF |bc |tail -1
pow=32;
define log2(x) {
if (x <= 1)
return (pow);
pow--;
return (log2(x/2));
}
log2($cnt)
EOF
)
echo $ip/$mask >> $dir/cn.net
    #过滤出 UNICOM 和 CHINANET 的地址
net=$(whois $ip |grep netname| cut -d : -f 2| sed 's/ *\(.*\)-.*/\1/')
case $net in
UNICOM)
echo $ip/$mask >> $dir/UNICOM
;;
CHINANET)
echo $ip/$mask >> $dir/CHINANET
;;
*)
echo $net >> $dir/OTHER;
;;
esac
done
exit 0

功能大概是从一个统计网站提取 ip 地址,并判断来源,写入到相应文件中。计算掩码的时候效率不是太高,但很有利于学习!从一些实例中可以进步很快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值