判断有无网

#import <SystemConfiguration/SystemConfiguration.h>

#pragma mark - 检测是否有网络 yes有网

+(BOOL)checkNetStatus

{

    struct sockaddr_in zeroAddress;

    bzero(&zeroAddress, sizeof(zeroAddress));

    zeroAddress.sin_len = sizeof(zeroAddress);

    zeroAddress.sin_family = AF_INET;

    

    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);

    SCNetworkReachabilityFlags flags;

    

    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);

    CFRelease(defaultRouteReachability);

    

    if (!didRetrieveFlags) {

        printf("Error. Count not recover network reachability flags ");

        return NO;

    }

    

    BOOL isReachable = flags & kSCNetworkFlagsReachable;

    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;

    BOOL net = (isReachable && !needsConnection) ? YES : NO;

    return net;

}

原文地址:https://www.cnblogs.com/hualuoshuijia/p/6214577.html