open (IP,"dig +short $domain | grep ^[0-9] |") or die "$!\n";
2009/6/30 smallfish.xy <smallfish.xy@gmail.com>
dig +short www.163.com | grep "^[0-9]"2009/6/30 Ericzhao82 <ericzhao82@gmail.com>请教用正则如何处理,谢谢。
另外,我本来在system shell里面处理,可是因为有 | 符号,运行时有错误提示
open (IP,"dig +short $domain | grep ^[0-9] |") or die "$!\n";
2009/6/30 smallfish.xy <smallfish.xy@gmail.com>[root@main ~]# dig +short www.163.com
www.cache.gslb.netease.com.
60.191.80.142
60.191.80.34
60.191.80.127
这个返回本来就是有www.cache.gslb.netease.com,你的意思只要IP啊,那你可以用正则过滤一下。
-------
http://twitter.com/smallfish_xy
http://hi.baidu.com/smallfish_xy
http://www.douban.com/people/smallfish.xy/
2009/6/30 Ericzhao82 <ericzhao82@gmail.com>小脚本实现的目的
1.通过dig $domain 返回的结果,从中截取IP地址
2.向这些IP地址,发$domain的Host头的HTTP请求。
例如:
1.dig www.163.com
2.返回61.135.253.16
然后做,curl "Host: www.163.com" http://61.135.253.16
下面是我写的小脚本,可是返回结果有问题,会将第一个CNAME地址打印出来,例如"Domain is: www.163.com"
IP is: news-biz.cache.163.gslb.netease.com.
请指点一二,多谢了。#!/usr/bin/perl -w
open (DOMAIN,"<namelist") or die "$!\n";
foreach $domain (<DOMAIN>) {
open (IP,"dig +short $domain |") or die "$!\n";
foreach $ip (<IP>) {
print "IP is: $ip\n";
print "Domain is: $domain\n";
}
close IP;
}
close DOMAIN;
#namelist 文件
www.163.com
news.163.com
……………………
……………………
--…………………………………………
Ericzhao
Email: Ericzhao82@gmail.com
MSN: Ericzhao_82@hotmail.com
BLOG: share82.freebsder.info
--
…………………………………………
Ericzhao
Email: Ericzhao82@gmail.com
MSN: Ericzhao_82@hotmail.com
BLOG: share82.freebsder.info
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论