博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux Shell获取APNIC中国区的IP地址
阅读量:6306 次
发布时间:2019-06-22

本文共 2000 字,大约阅读时间需要 6 分钟。

hot3.png

脚本如下

#!/bin/sh################################################################################################FILE NAME: DNS_IP.sh#Author: IamOkay#Create Time:2017年01月05日 星期四 14时23分35秒##############################################################################################DIR=/usr/apnicFILE=${DIR}/ip_apnicif [ ! -d "$DIR" ]; then   mkdir $DIRfiif [ ! -f "$FILE" ]; thenwget -c http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $FILEfigrep 'apnic|CN|ipv4' /usr/apnic/ip_apnic|cut -f 4,5 -d '|' | sed -e 's/|/ /g' |while read ip cntdoecho $ip:$cntmask=$(cat<
>cn.netif whois $ip |grep -i "*.chinanet.*\|.*telecom.*" >/dev/null;then echo $ip/$mask >> chinanetelif whois $ip |grep -i ".*unicom.*" >/dev/null;then echo $ip/$mask >> unicomelse echo $ip/$mask >> othersfidone

其中ip地址的计算部分如下

mask=$(cat<

这段代码理解有些难,我们可以理解为C语言中的宏定义【字符串程序】

mask=$(cat<

然后,我们通过bc命令计算,计算改字符串程序,注意,每次得到的是pow的值,然后获得最后一次tail 的值 tail -1

mask=$(cat<

 

当然,如果你还是觉得上述代码不能理解,可以使用如下代码

#!/bin/sh################################################################################################FILE NAME: DNS_IP.sh#Author: IamOkay#Create Time:2017年01月05日 星期四 14时23分35秒##############################################################################################function log2(){  x=$1;  echo '计算' $x;  for i in {32..1}  do    if(($x<=1));then       return $i;    else        x=$(($x/2));    fi  done  return 1;}DIR=/usr/apnicFILE=${DIR}/ip_apnicif [ ! -d "$DIR" ]; then   mkdir $DIRfiif [ ! -f "$FILE" ]; thenwget -c http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $FILEfigrep 'apnic|CN|ipv4' /usr/apnic/ip_apnic|cut -f 4,5 -d '|' | sed -e 's/|/ /g' |while read ip cntdoecho $ip:$cntlog2 $cntmask=$?echo $ip/$mask >>cn.netif    whois $ip  |grep -i "*.chinanet.*\|.*telecom.*" >/dev/null;then	 echo $ip/$mask >> chinanetelif  whois $ip |grep -i ".*unicom.*" >/dev/null;then	 echo $ip/$mask >> unicomelse  	 echo $ip/$mask >> othersfidone

 

 

转载于:https://my.oschina.net/ososchina/blog/819347

你可能感兴趣的文章
swoole异步任务task处理慢请求简单实例
查看>>
oracle数据泵导入分区表统计信息报错(四)
查看>>
spring技术内幕读书笔记之IoC容器的学习
查看>>
细说多线程(五) —— CLR线程池的I/O线程
查看>>
JavaScript instanceof和typeof的区别
查看>>
Hadoop文件系统详解-----(一)
查看>>
《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(8)--- 主动器...
查看>>
状态码
查看>>
我的友情链接
查看>>
用sqlplus远程连接oracle命令
查看>>
多年一直想完善的自由行政审批流程组件【2002年PHP,2008年.NET,2010年完善数据设计、代码实现】...
查看>>
自动生成四则运算题目
查看>>
【翻译】使用新的Sencha Cmd 4命令app watch
查看>>
【前台】【单页跳转】整个项目实现单页面跳转,抛弃iframe
查看>>
因为你是前端程序员!
查看>>
数据库设计中的14个技巧
查看>>
Android学习系列(5)--App布局初探之简单模型
查看>>
git回退到某个历史版本
查看>>
ecshop
查看>>
HTML5基础(二)
查看>>