gpt4 book ai didi

iphone - 在 iPhone 上获取 DNS 服务器 IP

转载 作者:行者123 更新时间:2023-12-03 20:16:17 29 4
gpt4 key购买 nike

我正在尝试使用 libresolv 框架获取我的 dns 服务器 IP,但我得到的只是“0.0.0.0”

-(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 这就是我想要的。

知道如何获得它吗?

编辑2

我也尝试过这个,但仍然得到“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));

最佳答案

您没有解决任何问题,您只是打印存储在某个变量中的地址。您实际上需要调用 res_queryres_search。但在 iOS 上,您最好使用 CFHost* 方法,如 this question 中所示。 。还有 sample code from Apple (搜索 MyResolveNameToAddress 函数)。

了解问题后更新:根据this question您无法访问 /etc/resolv.conf 文件(权限)。但根据this question可能通过使用SystemConfigFramework成功,但我不知道它是否适用于iOS(该框架存在,但我不知道该信息是否公开)。

关于iphone - 在 iPhone 上获取 DNS 服务器 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5325401/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com