注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zjc的博客

技术积累

 
 
 

日志

 
 

获取运营商公网IP地址脚本  

2010-02-25 08:42:30|  分类: shell编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

脚本如下(保存为get.pl):

#!/bin/sh
FILE=/tmp/apnic
rm -f $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 -e 's/|/ /g' | while read ip cnt
do
#        echo $ip:$cnt
        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>> cn.net
        NETNAME=`whois $ip | sed -e '/./{H;$!d;}' -e 'x;/netnum/!d' |grep ^netname | sed -e 's/.*:      \(.*\)/\1/g' | sed -e 's/-.*
//g'`
        echo $NETNAME
         case $NETNAME in
        CNC)
                echo $ip/$mask >> CNCGROUP
        ;;
        UNICOM)
                echo $ip/$mask >> CNCGROUP
        ;;
        CHINANET|CNCGROUP)
                echo $ip/$mask >> $NETNAME
        ;;
        CHINATELECOM)
                echo $ip/$mask >> CHINANET
        ;;
        *)
                echo $ip/$mask:$NETNAME >> OTHER
        ;;
        esac
done

 

与网络上找到的脚本有一个地方不同:NETNAME=`whois $ip | sed -e '/./{H;$!d;}' -e 'x;/netnum/!d' |grep ^netname | sed -e 's/.*:      \(.*\)/\1/g' | sed -e 's/-.*

环境:suse9,whois

 

  评论这张
 
阅读(773)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018