2009年6月29日星期一

[PerlChina] Re: 请教两个foreach嵌套的问题,谢谢

dig +short www.163.com | grep "^[0-9]"
-------
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>
请教用正则如何处理,谢谢。

另外,我本来在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





--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: