Chinaunix首页 | 论坛 | 博客
  • 博客访问: 875433
  • 博文数量: 366
  • 博客积分: 10267
  • 博客等级: 上将
  • 技术积分: 4290
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:04
文章分类

全部博文(366)

文章存档

2012年(366)

分类: 嵌入式

2012-03-05 13:39:31

分享到:

在许多情况下我们需要判断客户端的连接是电信还是网通,或者联通移动,那么,轻松获取客户端登录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

else fetch

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
分享到:

在许多情况下我们需要判断客户端的连接是电信还是网通,或者联通移动,那么,轻松获取客户端登录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

else fetch

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

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