Linux下電信等IP地址彙總並以 網段/掩碼 格式顯示

kumu_linux發表於2012-09-08

轉載請註明地址:http://blog.csdn.net/kumu_Linux

APNIC是管理亞太地區IP地址分配的機構,它有著豐富準確的IP地址分配庫,同時這些資訊也是對外開放的,whois3就可以在Linux幫助我們獲取中國電信、網通、鐵通的地址段:

whois3 install

=========================================================================
# wget http://ftp.apnic.net/apnic/dbase/tools/ripe-dbase-client-v3.tar.gz
# tar xf ripe-dbase-client-v3.tar.gz -C /usr/local/src/
# cd /usr/local/src/whois3-3.2.2
# ./configure
# make && make install
=========================================================================

獲取網通、電信、鐵通ip網段
=========================================================================
# whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP > cnc
# whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET > chinanet
# whois3 -h whois.apnic.net -l -i mb MAINT-CN-CRTC > crtc
=========================================================================

處理獲取資料
=========================================================================
# cat cnc  | grep inetnum  | awk -F: '{print $2}' | sed -r 's/( *)(.*)/\2/' | tr -d " " > cnc_ipcalc
# cat chinanet  | grep inetnum  | awk -F: '{print $2}' | sed -r 's/( *)(.*)/\2/' | tr -d " " > chinaet_ipcalc
# cat crtc  | grep inetnum  | awk -F: '{print $2}' | sed -r 's/( *)(.*)/\2/' | tr -d " " > crtc_ipcalc
# cat crtc_ipcalc //處理成類似如下的格式
... ...
61.236.250.0-61.236.250.255
61.236.251.0-61.236.251.255
... ...
=========================================================================
ipcalc是Linux下的IP/子網計算器
RHEL自帶的ipcalc版本較低,去官網下載最新的ipcalc即可
# wget http://jodies.de/ipcalc-archive/ipcalc-0.41.tar.gz
# tar xf ipcalc-0.41.tar.gz -C /usr/local/src
# /usr/local/src/ipcalc-0.41/ipcalc 61.236.250.0-61.236.250.255 | grep -v dea
//以下的結果就是我們需要的結果
61.236.250.0/24
#

# cat ipcalc.sh //檢視如下轉換指令碼
#!/bin/bash
###########
##by kumu##
###########
while (( $# > 0 ))
do
    while read line
    do
        /usr/local/src/ipcalc-0.41/ipcalc $line | grep -v dea
    done < $1 >> $1.txt
    shift
done
# 
# ./ipcalc.sh cnc_ipcalc chinanet_ipcalc crtc_ipcalc
# ls *.txt
chinanet_ipcalc.txt  cnc_ipcalc.txt  crtc_ipcalc.txt
# tail -5 cnc_ipcalc.txt
210.22.0.0/16
210.21.0.0/16
218.106.240.0/20
210.13.64.0/18
220.250.32.0/19
#
到此就完成所有的轉換了,國內IP地址彙總並以 網段/掩碼 格式顯示

參考:www.commandlinefu.com/commands/matching/ipcalc/aXBjYWxj/sort-by-votes

          http://mgmt.bjenet.cn/wiki/doku.php/freebsd/whois_get_addresses


相關文章