在iOS中解析域名得到ip地址然后直接连接
char *arr[]={"www.baidu.com"};
// int x = arc4random()%(sizeof(arr)/sizeof(arr[0])); // 随机获取C数组的元素index,此处为0
struct hostent *host = gethostbyname(arr[x]);
if (host==NULL) {
//此处为解析域名失败的操作,
}else{
NSLog(@"随机的域名是%s",host->h_name);
struct in_addr **list = (struct in_addr **)host->h_addr_list;
// 域名解析可以得到很多IP地址,此处获得解析到的IP数组 list
NSString *ip;
NSMutableArray *IPArr=[[NSMutableArray alloc]init];
//while 循环得到所有的得到的IP地址 放入OC IPArr数组中
while(host->h_addr_list[i]!=0){
ip= [NSString stringWithCString:inet_ntoa(*list[i++]) encoding:NSUTF8StringEncoding];
NSLog(@"--------ip是%@\r\n",ip);
[IPArr addObject:ip];
}
int num = arc4random()%IPArr.count;
NSLog(@"随机到第几个---%d",num);
//最后取出随机的一个可用的IP
}
此方法可以在客户端中书写域名,真实的IP地址可以在解析商处随意更改
网友评论