iPhone获取3G DNS主机名和IP地址

4

在 Objective C / C / C++ 中,是否有可能获取当前3G / 蜂窝数据连接的DNS服务器IP地址?

我搜索了一下,但没有找到明确的答案。

1个回答

16
#include <arpa/inet.h>
#include <ifaddrs.h>
#include <resolv.h>
#include <dns.h>

// 
- (NSString *) getDNSServers 
{
    NSMutableString *addresses = [[NSMutableString alloc]initWithString:@"DNS Addresses \n"];

    res_state res = malloc(sizeof(struct __res_state));

    int result = res_ninit(res);

    if ( result == 0 )
    {    
        for ( int i = 0; i < res->nscount; i++ )
        {
            NSString *s = [NSString stringWithUTF8String :  inet_ntoa(res->nsaddr_list[i].sin_addr)];
            [addresses appendFormat:@"%@\n",s];
            NSLog(@"%@",s);
        }
    }
    else 
        [addresses appendString:@" res_init result != 0"];

    return addresses;
    }

6
非常好用。不要忘记链接libresolv.dylib哦;-) - HHK
别忘了释放! - NG.
也救了我的命 :) 我有一个关于一个问题的问题。返回了两个值。我怎么知道我该使用哪一个? - Gokhan Gultekin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接