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"];