Pregunta

Actualmente estoy usando el código

    NSHost *host = [NSHost hostWithAddress:hostname];
if (host == nil) {
    host = [NSHost hostWithName:hostname];
    if (host == nil) {
        [self setMessage:@"Invalid IP address or hostname:"];
        return;
    }
}

retrive mi dirección IP para una aplicación de red que estoy trabajando, sin embargo, soy consciente de que NSHost es una API privada que será rechazado. ¿Puede alguien ayudarme con este código de trabajo para producir los mismos resultados sin necesidad de utilizar NSHost? No estoy realmente seguro de por dónde empezar.

EDIT:

Siguiendo las sugerencias que parecen maldito casi perfecto a continuación He añadido este código en mi aplicación en el lugar del código anterior

    Boolean result;
CFHostRef hostRef;
CFArrayRef addresses;
NSString *hostname = @"www.apple.com";
hostRef = CFHostCreateWithName(kCFAllocatorDefault, (CFStringRef)hostname);
if (hostRef) {
    result = CFHostStartInfoResolution(hostRef, kCFHostAddresses, NULL); // pass an error instead of NULL here to find out why it failed
    if (result == TRUE) {
        addresses = CFHostGetAddressing(hostRef, &result);
    }
}
if (result == TRUE) {
    NSLog(@"Resolved");
} else {
    NSLog(@"Not resolved");
}

He eliminado la cuarta línea (como tengo esta información desde ya en otro lugar) pero me da errores se basan en CFHostRef ser declarado. ¿Cómo voy a resolver esto? Parece que es mi único gran obstáculo, como otros errores que solamente se basan en la falta de poder ver hostRef después de eso. EDIT:. Arañazos que también consigue kCFHostAddresses no declarados

¿Fue útil?

Solución 3

http://developer.apple.com/iphone/library /qa/qa2009/qa1652.html

¿Tienes un pequeño gran respuesta a través del sistema de soporte de programador, esto funcionó a la perfección.

Otros consejos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top