0

私のアプリでは、現在の OS X システムで利用可能な既存のネットワークのタイプがあるかどうかを確認したかったのです。イーサネット、インターネット、Wifi、3G カード、またはその他の種類のネットワーク通信。

どうすればそれを達成できますか?

ありがとうございました!


https://stackoverflow.com/questions/5662298...

bdashcodyに感謝します!私は宿題をして、上記の別の答えを見つけました。ただし、これは 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 が返されました。

4

1 に答える 1