程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> iphone-gethostbyname( )在ios6中不工作

iphone-gethostbyname( )在ios6中不工作

編輯:編程綜合問答
gethostbyname( )在ios6中不工作

我用gethostbyname( )獲取設備的ip,在ios5中運行正常,但是在ios6中,返回的host值是空,下面就是我的代碼:

// retun the host name
- (NSString *)hostname
{
    char baseHostName[256];
    int success = gethostname(baseHostName, 255);
    if (success != 0) return nil;
    baseHostName[255] = '\0';

#if !TARGET_IPHONE_SIMULATOR
    return [NSString stringWithFormat:@"%s.local", baseHostName];
#else
    return [NSString stringWithFormat:@"%s", baseHostName];
#endif
}

// return IP Address
- (NSString *)localIPAddress
{
    struct hostent *host = gethostbyname([[self hostname] UTF8String]);
    if (!host) {
        herror("resolv");
        return nil;
    }
    struct in_addr **list = (struct in_addr **)host->h_addr_list;
    return [NSString stringWithCString:inet_ntoa(*list[0]) encoding:NSUTF8StringEncoding];
}

在ios5和ios6的模擬器中都正常,但是到ios6針劑就不行了,不知道是怎麼回事?有沒有其他方法在ios6獲取設備ip的?謝謝指教

最佳回答:


改用 getifaddrs + getnameinfo 可以枚舉出所有接口的ip。gethostbyname對ipv6是無效的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved