Chinaunix首页 | 论坛 | 博客
  • 博客访问: 298479
  • 博文数量: 240
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-04 18:14
文章分类

全部博文(240)

文章存档

2017年(8)

2014年(4)

2013年(15)

2012年(4)

2011年(14)

2010年(55)

2009年(140)

我的朋友

分类: LINUX

2009-07-05 02:08:34

 
    在许多情况下我们需要判断客户端的连接是电信还是网通,或者联通移动,那么,轻松获取客户端登录IP后如何判断究竟是哪个运营上的IP呢,下面脚本可以很轻易的帮您收集这些信息!
 
运行条件: 需要网络和 Internet 连通!
 
 

#!/bin/sh

#auto get the IP Table

#get the newest delegated-apnic-latest

rm delegated-apnic-latest

if type wget
     then wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
     else fetch http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
fi
grep 'apnic|CN|ipv4' delegated-apnic-latest | cut -f 4,5 -d '|' | tr '|' ' ' | while read ip cnt
do
mask=$(bc <<END | tail -1
pow=32;
define log2(x) {
if (x<=1) return (pow);
pow--;
return(log2(x/2));
}
log2($cnt);
END
)
echo $ip/$mask';'>>cnnet

resultext=`whois $ip@whois.apnic.net | grep -e ^netname -e ^descr -e ^role -e ^mnt-by | cut -f 2 -d ':' | sed 's/ *//'`

if echo $resultext | grep -i -e 'railcom' -e 'crtc' -e 'railway'
    then echo $ip/$mask';' >> crc
elif echo $resultext | grep -i -e 'cncgroup' -e 'netcom'
    then echo $ip/$mask';' >> cnc
fi
if echo $resultext | grep -i -e 'chinanet' -e 'chinatel'
    then echo $ip/$mask';' >> telcom_acl
elif echo $resultext | grep -i -e 'unicom'
    then echo $ip/$mask';' >> unicom
elif echo $resultext | grep -i -e 'cmnet'
    then echo $ip/$mask';' >> cmnet
else
    echo $ip/$mask';' >> other_acl
fi
done

 

 

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