私のアプリでは、現在の 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 が返されました。