comprobar la conexión a internet en la aplicación de cocoa

¿Cómo reviso la conexión a Internet en una aplicación de cocoa OS X? ¿Se puede reutilizar el código de ejemplo de iOS Reachability de Apple para este fin?

Gracias,

Nava

Este código lo ayudará a encontrar si internet es alcanzable o no:

 -(BOOL)isInternetAvail { BOOL bRet = FALSE; const char *hostName = [@"google.com" cStringUsingEncoding:NSASCIIStringEncoding]; SCNetworkConnectionFlags flags = 0; if (SCNetworkCheckReachabilityByName(hostName, &flags) && flags > 0) { if (flags == kSCNetworkFlagsReachable) { bRet = TRUE; } else { } } else { } return bRet; } 

Para más información, puede ver la accesibilidad de iphone

La versión actual del código de Accesibilidad (2.2) enumerada en el sitio de Apple y mencionada anteriormente NO comstack como está para una aplicación Mac OS X Cocoa. La constante kSCNetworkReachabilityFlagsIsWWAN solo está disponible al comstackr para TARGET_OS_IPHONE y las referencias de Reachability.m esa constante. Necesitará #ifdef las dos ubicaciones en Reachability.m que lo hacen referencia como a continuación:

 #if TARGET_OS_IPHONE (flags & kSCNetworkReachabilityFlagsIsWWAN) ? 'W' : '-', #else 0, #endif 

y

 #if TARGET_OS_IPHONE if ((flags & kSCNetworkReachabilityFlagsIsWWAN) == kSCNetworkReachabilityFlagsIsWWAN) { // ... but WWAN connections are OK if the calling application // is using the CFNetwork (CFSocketStream?) APIs. retVal = ReachableViaWWAN; } #endif 

La solución de Unicorn está en desuso, pero puede obtener resultados equivalentes usando el siguiente código:

 SCNetworkReachabilityRef target; SCNetworkConnectionFlags flags = 0; Boolean ok; target = SCNetworkReachabilityCreateWithName(NULL, hostName); ok = SCNetworkReachabilityGetFlags(target, &flags); CFRelease(target); 

Apple tiene un buen código que lo hace por ti. Puede verificar si su conexión es WiFi por instinto o solo celular / WiFi. Texto del enlace