インターネット、電信、鉄通IPアドレスの割り当てセグメントを簡単に取得する方法


インターネットにまたがる工事やアプリケーションを行う場合もありますが、できるだけ正確に電気通信、ネット通、鉄通などの電気通信事業者のIPアドレスの割り当て状況を知る必要があります。ネット上の資料は少ないだけではなく、Nヶ月前の期限切れの資料が多くなります。APNICはアジア太平洋地域のIPアドレスの割り当てを管理する機構です。それと同時にこれらの情報も公開されています。Linuxの下で、いくつかの電気通信事業者のIPアドレスの割り当て状況を見てみましょう。 wget http://ftp.apnic.net/apnic/dbase/tools/ripe-dbase-client-v3.tar.gz  shell> タラ xzvf ripe-dbase-client-v 3.tar.gz  shell> cd whois-3.1 shell> ./configre shell> makeは上記のコンパイルを完了した後、IPアドレスセグメントの取得を開始します。中国網通:shell> ./whois 3 -h whois.appic.net -l -i mb。 MAINT-CNCGROUT > /var/cnc中国電信:shell> ./whois 3 -h whois.appic.net -l -i mb。 MAINT-CHINANET > /var/china et中国鉄通:shell> ./whois 3 -h whois.appic.net -l -i mb。 MAINT-CN-CSRTC > /var/crtcは取得したファイルを開けば、中の情報がとても詳しく見えます。支社の責任者、電話、電子メールなどの情報も見られます。きれいなIPアドレスセグメントのファイルがほしいなら、grepとawkで簡単にフィルタリングすればいいです。CUから自動的にスクリプトを取得します。 :

#!/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 [email protected] | 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    
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