域名解析为IP
这里介绍下小得技能点:
- (NSString *) realmToIP:(NSString *)hostName{
const char *host = [hostName UTF8String];
// Get host entry info for given host
struct hostent *remoteHostEnt = gethostbyname(host);
// Get address info from host entry
struct in_addr *remoteInAddr = (struct in_addr *) remoteHostEnt->h_addr_list[0];
// Convert numeric addr to ASCII string
char *sRemoteInAddr = inet_ntoa(*remoteInAddr);
return [NSString stringWithFormat:@"%s",sRemoteInAddr];
}
- (NSString*)getIPAddressByHostName:(NSString*)strHostName
{
const char* szname = [strHostName UTF8String];
struct hostent* phot ;
@try
{
phot = gethostbyname(szname);
}
@catch (NSException * e)
{
return nil;
}
struct in_addr ip_addr;
memcpy(&ip_addr,phot->h_addr_list[0],4);///h_addr_list[0]里4个字节,每个字节8位,此处为一个数组,一个域名对应多个ip地址或者本地时一个机器有多个网卡
char ip[20] = {0};
inet_ntop(AF_INET, &ip_addr, ip, sizeof(ip));
NSString* strIPAddress = [NSString stringWithUTF8String:ip];
return strIPAddress;
}
两种方法都能成功解析域名成IP这里介绍的是一个很方便的域名转IP的方法。在项目开发中可能会遇到需要将域名转IP上传信息。我也会将自己写的Demo上传供大家需要时GET。