2015-10-26 85 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設置更容易。