iphone - support - soporte tecnico apple telefono
Problema de accesibilidad de SDK de iPhone con dirección (1)
Necesito verificar la conectividad con la dirección IP solamente. Estoy intentando hacerlo con la clase Accesibilidad de Apple, usando la opción reachabilityWithAddress. Y mi problema es que puedo poner cualquier dirección IP en el campo callAddress.sin_addr.s_addr y statusText siempre será "alcanzable". ¿Cómo puedo hacer para verificar exactamente la conectividad a la dirección IP?
-(BOOL)reachabilityTest {
struct sockaddr_in callAddress;
callAddress.sin_len = sizeof(callAddress);
callAddress.sin_family = AF_INET;
callAddress.sin_port = htons(24);
callAddress.sin_addr.s_addr = inet_addr("212.83.3.190");
Reachability *hostReach = [[Reachability reachabilityWithAddress:&callAddress] retain];
NetworkStatus netStatus = [hostReach currentReachabilityStatus];
if (netStatus == NotReachable)
{
NSLog(@"NotReachable");
statusField.text = @"NOT reachable";
return NO;
}
if (netStatus == ReachableViaWiFi)
{
NSLog(@"ReachableViaWiFi");
statusField.text = @"reachable";
return YES;
}
[Reachability release];
}
En lugar de usar las clases de Accesibilidad, vaya a la vieja escuela y abra una conexión TCP a ella. Si la respuesta a connect()
es EHOSTUNREACH
, entonces no puedes. Si la respuesta es ECONNREFUSED
, o una conexión exitosa, entonces puedes.