2012-06-12 91 views

回答

15
#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; 
    } 
+0

非常好,谢谢! – AriX

+5

工程很棒。不要忘记链接libresolv.dylib ;-) –

+0

这真是一个很棒的信息。你救了我的命。谢谢! :) – mohamede1945