<code>#!/bin/bash</code>
<code>#getip</code>
<code>#connect wy.cn</code>
<code>FILE=delegated-apnic-latest</code>
<code>if</code> <code>[ ! -f $FILE ];</code><code>then</code>
<code> </code><code>wget http:</code><code>//ftp</code><code>.apnic.net</code><code>/apnic/stats/apnic/delegated-apnic-latest</code>
<code>fi</code>
<code>grep</code> <code>"apnic|CN|ipv4"</code> <code>$FILE | </code><code>awk</code> <code>-F </code><code>"|"</code> <code>'{print $4,$5}'</code> <code>> IP.txt</code>
<code>AB=`</code><code>cat</code> <code>IP.txt | </code><code>wc</code> <code>-l`</code>
<code>pow=32</code>
<code>i=1</code>
<code>while</code><code>(($i<=$AB));</code><code>do</code>
<code> </code><code>IP=`</code><code>sed</code> <code>-n ${i}p IP.txt | </code><code>awk</code> <code>'{print $1}'</code><code>`</code>
<code> </code><code>HOST=`</code><code>sed</code> <code>-n ${i}p IP.txt | </code><code>awk</code> <code>'{print $2}'</code><code>`</code>
<code> </code><code>ERHOST=`</code><code>echo</code> <code>"obase=2;$HOST"</code> <code>| </code><code>bc</code><code>`</code>
<code> </code><code>HOSTL=`</code><code>echo</code> <code>${</code><code>#ERHOST}`</code>
<code> </code><code>let</code> <code>BU=$pow-$HOSTL</code>
<code> </code><code>ZQIAN=</code><code>"11111111111111111111111111111111"</code>
<code> </code><code>QIAN=`</code><code>echo</code> <code>${ZQIAN:0:$BU}`</code>
<code> </code><code>MASK=`</code><code>echo</code> <code>$QIAN$ERHOST`</code>
<code> </code><code>STRA=`</code><code>echo</code> <code>${MASK:0:8}`</code>
<code> </code><code>STRB=`</code><code>echo</code> <code>${MASK:8:8}`</code>
<code> </code><code>STRC=`</code><code>echo</code> <code>${MASK:16:8}`</code>
<code> </code><code>STRD=`</code><code>echo</code> <code>${MASK:24:8}`</code>
<code> </code><code>MASKA=`</code><code>echo</code> <code>"ibase=2;$STRA"</code> <code>| </code><code>bc</code><code>`</code>
<code> </code><code>MASKB=`</code><code>echo</code> <code>"ibase=2;$STRB"</code> <code>| </code><code>bc</code><code>`</code>
<code> </code><code>MASKC=`</code><code>echo</code> <code>"ibase=2;$STRC"</code> <code>| </code><code>bc</code><code>`</code>
<code> </code><code>MASKD=`</code><code>echo</code> <code>"ibase=2;$STRD"</code> <code>| </code><code>bc</code><code>`</code>
<code> </code><code>NETMASK=`</code><code>echo</code> <code>$MASKA.$MASKB.$MASKC.$MASKD`</code>
<code> </code><code>BIT=`</code><code>echo</code> <code>$MASK | </code><code>grep</code> <code>-o </code><code>'1'</code> <code>| </code><code>wc</code> <code>-l`</code>
<code> </code><code>NET=`whois -h whois.apnic.net $IP | </code><code>grep</code> <code>"mnt-by"</code><code>`</code>
<code> </code><code>NUM_A=`</code><code>echo</code> <code>$NET | </code><code>grep</code> <code>'CHINA'</code> <code>| </code><code>wc</code> <code>-l`</code>
<code> </code><code>NUM_B=`</code><code>echo</code> <code>$NET | </code><code>grep</code> <code>'CNCGROUP'</code> <code>| </code><code>wc</code> <code>-l`</code>
<code> </code><code>NUM_C=`</code><code>echo</code> <code>$NET | </code><code>grep</code> <code>'CERNET'</code> <code>| </code><code>wc</code> <code>-l`</code>
<code> </code><code>NUM_D=`</code><code>echo</code> <code>$NET | </code><code>grep</code> <code>'CMCC'</code> <code>| </code><code>wc</code> <code>-l`</code>
<code> </code><code>if</code><code>(($NUM_A>0));</code><code>then</code>
<code> </code><code>echo</code> <code>$IP/$NETMASK ................CHINATELECOM</code>
<code> </code><code>echo</code> <code>$IP/$NETMASK >> CHINATELECOM.TXT</code>
<code> </code><code>let</code> <code>i++</code>
<code> </code><code>continue</code>
<code> </code><code>fi</code>
<code> </code><code>if</code><code>(($NUM_B>0));</code><code>then</code>
<code> </code><code>echo</code> <code>$IP/$NETMASK ................CNCGROUP</code>
<code> </code><code>echo</code> <code>$IP/$NETMASK >> CNCGROUP.TXT</code>
<code> </code><code>if</code><code>(($NUM_C>0));</code><code>then</code>
<code> </code><code>echo</code> <code>$IP/$NETMASK ................CERNET</code>
<code> </code><code>echo</code> <code>$IP/$NETMASK >> CERNET.TXT</code>
<code> </code><code>if</code><code>(($NUM_D>0));</code><code>then</code>
<code> </code><code>echo</code> <code>$IP/$NETMASK ................CMCC</code>
<code> </code><code>echo</code> <code>$IP/$NETMASK >> CMCC.TXT</code>
<code> </code><code>let</code> <code>res=$NUM_A+$NUM_B+$NUM_C+$NUM_D</code>
<code> </code><code>if</code><code>(($res==0));</code><code>then</code>
<code> </code><code>echo</code> <code>$IP/$NETMASK ................OTHER</code>
<code> </code><code>echo</code> <code>$IP/$NETMASK >> OTHER.TXT</code>
<code>done</code>
<code>rm</code> <code>-rf IP.txt $FILE</code>
得到IP位址檔案分類如下
CERNET.TXT CHINATELECOM.TXT CMCC.TXT CNCGROUP.TXT OTHER.TXT getip
CERNET.TXT是教育網
CHINATELECOM.TXT是中國電信
CMCC.TXT是中國移動
CNCGROUP是中國聯通
OTHER.TXT是其他的 大部分是CNNIC配置設定的IP位址
getip是腳本檔案名
如果找不到whois指令 從如下位址下載下傳安裝
http://ftp.apnic.net/apnic/dbase/tools/ripe-dbase-client-v3.tar.gz
本文轉自flyingzf 51CTO部落格,原文連結:http://blog.51cto.com/flyingzf/1331191,如需轉載請自行聯系原作者