2014-11-14 129 views
2

如何將IP地址從NSString改爲unsigned int in Objective-C?如何將NSString中的IP地址轉換爲Objective-C中的unsigned int?

NSString A = "192.168.43.149" 

我嘗試將其轉換爲unsigned int如下面的代碼:

unsigned int ip; 
ip = (unsigned int)[A intValue]; 

sscanf([A UTF8String], "%u", &ip); 

結果始終只顯示192

我希望它顯示0xc0a82b95

如何隱蔽從NSString IP地址unsigned int在Objective-C?

在此先感謝。

+0

你嘗試做什麼,得到了什麼?和unsigned int ip = 19216811? 預期產量是多少? –

回答

2

IPv4地址可以使用inet_aton(),這將字符串轉換爲一個Internet地址 :

#include <arpa/inet.h> 

NSString *addrString = @"192.168.43.149"; 
struct in_addr addr; 
if (inet_aton([addrString UTF8String], &addr) != 0) { 
    uint32_t ip = ntohl(addr.s_addr); 
    NSLog(@"%08x", ip); 
} else { 
    NSLog(@"invalid address"); 
} 

// Output: c0a82b95