如何在Objective-C中将IP地址从NSString转换为unsigned int?

时间:2014-11-14 10:22:43

标签: ios objective-c nsstring unsigned

如何在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

提前致谢。

1 个答案:

答案 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
相关问题