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

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 //查看如下转换脚本
 

  
  
  
  
  1. python] view plaincopyprint?  
  2. #!/bin/bash     
  3. ###########     
  4. ##by kumu##     
  5. ###########     
  6. while (( $# > 0 ))     
  7. do    
  8.     while read line    
  9.     do    
  10.         /usr/local/src/ipcalc-0.41/ipcalc $line | grep -v dea    
  11.     done < $1 >> $1.txt    
  12.     shift    
  13. 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
 

你可能感兴趣的:(编程,shell,脚本)