日期:2014-05-16  浏览次数:20784 次

Linux下电信等IP地址汇总并以 网段/掩码 格式显示

转载请注明地址: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