免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2066 | 回复: 2
打印 上一主题 下一主题

[DNS] 谁有CU的自动获取脚本,高手帮我看看不知为什么出错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-06 11:32 |只看该作者 |倒序浏览
脚本如下:
#!/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 $ip@whois.apnic.net | 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




运行脚本出错如下:
wget is /usr/bin/wget
--10:34:47--  http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
           => `delegated-apnic-latest'
Resolving ftp.apnic.net... 202.12.29.20
Connecting to ftp.apnic.net|202.12.29.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 845,142 (825K) [text/plain]

100%[===================================================================>] 845,142       37.04K/s    ETA 00:00

10:35:08 (42.75 KB/s) - `delegated-apnic-latest' saved [845142/845142]

./bb: line 39: syntax error near unexpected token `done'
./bb: line 39: `done  '

论坛徽章:
0
2 [报告]
发表于 2007-11-06 12:05 |只看该作者
发shell版更合适

我也不大懂shell
不过给个我能用的你参考下

  1. #!/bin/sh
  2. FILE=/root/study/apnic/ip_apnic
  3. rm -f $FILE
  4. wget [url]http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest[/url] -O $FILE
  5. grep 'apnic|CN|ipv4|' $FILE | cut -f 4,5 -d'|'|sed -e 's/|/ /g' | while read ip cnt
  6. do
  7.        echo $ip:$cnt
  8.        mask=$(cat << EOF | bc | tail -1
  9. pow=32;
  10. define log2(x) {
  11. if (x<=1) return (pow);
  12. pow--;
  13. return(log2(x/2));
  14. }
  15. log2($cnt)
  16. EOF
  17. )
  18. # ..... FreeBSD ., EOF .... NL ,Linux ... NL ....
  19.        echo $ip/$mask>;>; cn.net
  20.        NETNAME=`whois $[email]ip@whois.apnic.net[/email] | sed -e '/./{H;$!d;}' -e 'x;/netnum/!d' |grep ^netname | sed -e 's/.*:      \(.*\)/\1/g' | sed -e 's/-.*//g'`
  21.        case $NETNAME in
  22.        CHINANET|CNCGROUP)
  23.                echo $ip/$mask >;>; $NETNAME
  24.        ;;
  25. #..... CHINATELECOM = CHINANET
  26.       CHINATELECOM)
  27.                echo $ip/$mask >;>;CHINANET
  28. #....... ISP , .........,.. apnic whois , ....... NETNAME
  29.        OTHER_NETNAME_here)
  30.        ;;
  31.        esac
  32. done
复制代码

论坛徽章:
0
3 [报告]
发表于 2007-11-06 12:25 |只看该作者
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
  
鄙人拙见,好像掉了个fi?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP