当前手机是否联网 Objective-C for iphone Connected To Network

- (BOOL) connectedToNetwork

{

// Create zero addy

struct sockaddr_in zeroAddress;

bzero(&zeroAddress, sizeof(zeroAddress));

zeroAddress.sin_len = sizeof(zeroAddress);

zeroAddress.sin_family = AF_INET;

// Recover reachability flags

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

SCNetworkReachabilityFlags flags;

BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);

CFRelease(defaultRouteReachability);

if (!didRetrieveFlags)

{

NSLog(@"Error. Could not recover network reachability flags");

return NO;

}

BOOL isReachable = flags & kSCNetworkFlagsReachable;

BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;

BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;

//向苹果网站发送请求,严正URL链接是否成功

NSURL *testURL = [NSURL URLWithString:@"http://www.apple.com/"];

NSURLRequest *testRequest = [NSURLRequest requestWithURL:testURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20.0];

NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:self];

return ((isReachable && !needsConnection) || nonWiFi) ? (testConnection ? YES : NO) : NO;

}