在我的应用程序中,我想检查当前 OS X 系统中是否有任何类型的现有网络可用。以太网或互联网或 Wifi 或 3G 卡或任何其他类型的网络通信。
我怎样才能做到这一点?
谢谢!
https://stackoverflow.com/questions/5662298 ...
感谢bdash和cody!我做了功课,在上面找到了另一个答案。但那是针对 iPhone 的,我在下面做了一些修改。
- (BOOL)isAnyNetworkExist
{
struct sockaddr_in nullAddress;
bzero(&nullAddress, sizeof(nullAddress));
nullAddress.sin_len = sizeof(nullAddress);
nullAddress.sin_family = AF_INET;
SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr*) &nullAddress);
SCNetworkReachabilityFlags flags;
SCNetworkReachabilityGetFlags(ref, &flags);
CFRelease(ref); /* !!! */
AMCDebug(@"Flag: 0x%08X", flags);
if (0 != (flags & kSCNetworkFlagsIsLocalAddress))
{
return YES;
}
else
{
return NO;
}
}
我只检查“ kSCNetworkFlagsIsLocalAddress ”,但我不确定这是否可以。
我在删除所有网络连接时尝试了该标志,它返回 0x07。