Альтернативы NSHost в приложении для iPhone

В настоящее время я использую этот код

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

, чтобы получить свой IP-адрес для сетевого приложения, над которым я работаю, однако я в курсе что NSHost является частным API, который будет отклонен. Может ли кто-нибудь помочь мне с обработкой этого кода для получения тех же результатов без использования NSHost? Я не совсем уверен, с чего начать.

РЕДАКТИРОВАТЬ:

Следующие предложения, которые кажутся черт возьми, почти идеально, ниже я добавил этот код в свое приложение вместо кода выше

    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");
}

Я удалил 4-ю строку (поскольку у меня уже есть эта информация из других источников), но я получаю ошибки, основанные на том, что CFHostRef не объявлен Как мне это решить? Кажется, это мое единственное большое препятствие, поскольку другие ошибки основаны только на отсутствии возможности видеть hostRef после этого. РЕДАКТИРОВАТЬ: Поцарапать, что я также получить kCFHostAddresses необъявленные.

5
задан skaffman 10 August 2010 в 08:54
поделиться