Edit AllPages

How does one check if the user of an application is currently on the internet?

This is what I found from the cocoa-dev mailing list:

I have SystemConfiguration.framework added to my project, and I use this function:

BOOL networkReachableWithoutAnythingSpecialHappening(void) { BOOL success; SCNetworkConnectionFlags reachabilityStatus; success = SCNetworkCheckReachabilityByName(“”, &reachabilityStatus); return (success && (reachabilityStatus & kSCNetworkFlagsReachable) && !(reachabilityStatus & kSCNetworkFlagsConnectionRequired)); }

Hope that’s useful.

Thanks that function works great. –DavidKopec

I changed the number 3 to ‘kSCNetworkFlagsReachable’ as this is the correct flag to check for. success is a bit misleading, it simply returns false (or NO) if it cannot determine reachability. – MattJarjoura

“success = false” is pretty leading to me ;P –MarkStultz

The above code doesn’t work in many cases (Airport accessible, but offline, and others). There is a much better method outlined here: - MichaelBianco

Modified the above code to incorporate wisdom from MichaelBianco’s link (added kSCNetworkFlagsConnectionRequired to the final test). –SidneySM

P.S. My first edit!