【问题标题】:How to convert an IP address from NSString to unsigned int in Objective-C?如何在 Objective-C 中将 IP 地址从 NSString 转换为 unsigned int?
【发布时间】:2015-01-11 17:06:19
【问题描述】:

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

提前致谢。

【问题讨论】:

  • 你试图做什么来得到什么?和无符号整数 ip = 19216811 ?预期的输出是多少?

标签: ios objective-c nsstring unsigned


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-01-24
    • 2013-02-02
    • 2022-01-04
    • 1970-01-01
    • 2012-05-13
    • 2015-01-29
    • 1970-01-01
    • 2018-04-27
    • 2018-04-06
    相关资源
    最近更新 更多