OGeek|极客世界-中国程序员成长平台

标题: ios - 如何在 Objective-C 中将 IP 地址从 NSString 转换为 unsigned int? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 12:47
标题: ios - 如何在 Objective-C 中将 IP 地址从 NSString 转换为 unsigned int?

如何在Objective-C中将IP地址从NSString转换为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中将IP地址从NSString转换为unsigned int

提前致谢。



Best Answer-推荐答案


对于 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

关于ios - 如何在 Objective-C 中将 IP 地址从 NSString 转换为 unsigned int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26927759/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4