如何在Objective-C中将 NSString
的IP地址转换为 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
如何在Objective-C中将 NSString
的IP地址转换为 unsigned int
?
提前致谢。
答案 0 :(得分: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