最近开发过程中,遇到需要获得iOS系统广播地址的问题,经过一番google,获得一个很好的解决方法,如下:
1、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #include <sys/types.h> #include <sys/socket.h> #include <ifaddrs.h> #include <arpa/inet.h> - (NSString *)getBroadcastAddress { NSString *broadCastAddress = @""; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int success = 0; success = getifaddrs(&interfaces); if (success == 0) { temp_addr = interfaces; while(temp_addr != NULL) { if(temp_addr->ifa_addr->sa_family == AF_INET) { if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) { broadCastAddress = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_dstaddr)->sin_addr)]; } } temp_addr = temp_addr->ifa_next; } } freeifaddrs(interfaces); return broadCastAddress; }
|
2、
需要在xcode该工程里配置

加入CFNetwork.framework、SystemConfiguration.framework