我試圖使用libresolv
框架中使用,以獲得我的DNS服務器IP,但我得到的是「0.0.0.0」獲取DNS服務器IP上IPhone
-(void) getDns
{
res_init();
for (int i=0;i<MAXNS;i++)
{
printf("%s",inet_ntoa(_res.nsaddr_list[i].sin_addr));
}
}
任何問題在這裏我的代碼?
感謝
編輯
試過使用SO的其他問題的代碼,但是這是我所得到的主機時, 「apple.com」
2011-03-16 15:07:21.689 MobileMax[5876:207] RESOLVED 0:<17.149.160.49>
2011-03-16 15:07:21.691 MobileMax[5876:207] RESOLVED 1:<17.251.200.70>
2011-03-16 15:07:21.691 MobileMax[5876:207] RESOLVED 2:<17.112.152.57>
而當運行命令:cat /etc/resolv.conf
我得到nameserver 10.0.0.138
這就是我想要的。
任何想法如何得到?
EDIT2
我想這是很好,但仍然得到 「0.0.0.0」 的迴應。
u_char buf[NS_PACKETSZ];
int responseLen;
res_query("www.google.com",ns_c_in,ns_t_ns,buf,sizeof(buf));
哦,現在我得到你想要的...只有這樣我可以看到現在的問題是實際上解析'的/ etc/resolv.conf'。我很好奇,爲什麼你需要DNS服務器的IP? – DarkDust 2011-03-16 14:04:42
請參閱http://stackoverflow.com/questions/10999612/iphone-get-3g-dns-host-name-and-ip-address – AriX 2012-07-20 23:02:18
運行模擬器時,我也會得到0.0.0.0的信息。但是當我在真實設備上嘗試代碼時,它實際上會返回正確的dns ip地址。所以你的代碼沒有問題。 – user2061448 2013-02-11 13:32:27