iOS开发中网络状态检测及测速

2022-12-20  本文已影响0人  Leoeoo

一、网络状态检测

使用苹果官方的库:Reachability。

二、测速

使用苹果官方的库:SimplePing。

三、域名解析

最好在子线程执行,如果传入的是ip,会原样返回。

#include <netdb.h>
#include <arpa/inet.h>

- (NSString *)getIPWithHostName:(NSString *)hostName {
    const char *hostN = [hostName UTF8String];
    struct hostent* phot;
    @try {
        phot = gethostbyname(hostN);
    }
    @catch (NSException *exception) {
        return nil;
    }
    if (!phot) {
        return nil;
    }
    struct in_addr ip_addr;
    memcpy(&ip_addr, phot->h_addr_list[0], 4);
    char ip[20] = {0};
    inet_ntop(AF_INET, &ip_addr, ip, sizeof(ip));
    NSString *strIPAddress = [NSString stringWithUTF8String:ip];
    return strIPAddress;
}

调用示例:

[self getIPWithHostName:@"www.baidu.com"];
上一篇下一篇

猜你喜欢

热点阅读