在Objective-C中计算广播地址

Rem*_*123 4 networking objective-c broadcast subnet ios

如何计算目标C中的广播地址

我想将广播地址解析为与以下子网计算器中显示的结果相同 - http://www.subnet-calculator.com/subnet.php

我有本地IOS设备的IP地址和子网掩码.我知道广播地址使用以下公式

broadcast = ip | ( ~ subnet )
Run Code Online (Sandbox Code Playgroud)

(我正在回答我自己,因为我没有在互联网上看到过这个,而且我也不知道有任何库执行这个计算.很高兴看到是否有其他人有更好的解决方案或知道任何库)

Mar*_*n R 6

替代方案:

#include <net/ethernet.h>
#include <arpa/inet.h>

NSString *localIPAddress = @"192.168.1.10";
NSString *netmaskAddress = @"255.255.192.0";

// Strings to in_addr:
struct in_addr localAddr;
struct in_addr netmaskAddr;
inet_aton([localIPAddress UTF8String], &localAddr);
inet_aton([netmaskAddress UTF8String], &netmaskAddr);

// The broadcast address calculation:
localAddr.s_addr |= ~(netmaskAddr.s_addr);

// in_addr to string:
NSString *broadCastAddress = [NSString stringWithUTF8String:inet_ntoa(localAddr)];
Run Code Online (Sandbox Code Playgroud)