2015-10-26 76 views
0

我想在winodws上使用Net :: DNS :: Resolver来测试一些不同的DNS服务器。 当我使用$resolver=Net::DNS::Resolver->new()从Perl脚本时,我关闭脚本更改默认的DNS服务器并运行该脚本再次$解析指向新DNS,Net :: DNS ::解析器和自动配置

但是当我使用这个my $resolver=Net::DNS::Resolver->new()一个循环内,并且重新初始化它,更改默认的dns服务器,$ resolver保持旧的配置。任何想法如何解决这个问题?

值得一提我使用这个模块在Windows

回答

0

该模块采用的是Windows系统调用来获取全系统的解析信息。这个系统调用(以及包含它的Perl模块)很可能不希望信息在运行脚本的生命周期中发生更改。

无论如何,仅仅为了查询不同的服务器而改变系统范围的配置并不是最好的方式。为什么不直接每次通过循环在Net::DNS::Resolver对象中设置名称服务器?在你的情况下,它会像$resolver->nameservers([$ns_ip_or_name]);,这比在Windows中更改DNS设置更容易。