通过域名转ip

//根据域名获取ip地址

//

-(NSString*)getIPWithHostName:(const NSString*)hostName

{

    const char *hostN= [hostName UTF8String];

    struct hostent* phot;

    

    @try {

        phot = gethostbyname(hostN);

        

    }

    @catch (NSException *exception) {

        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;

}

 

 

- (NSArray *)getIP{

    NSString *hostname = @"www.baidu.com";

    CFHostRef hostRef = CFHostCreateWithName(kCFAllocatorDefault, (__bridge CFStringRef)hostname);

    if (hostRef)

    {

        Boolean result = CFHostStartInfoResolution(hostRef, kCFHostAddresses, NULL);

        if (result == TRUE)

        {

            NSArray *addresses = (__bridge NSArray*)CFHostGetAddressing(hostRef, &result);

            

            NSMutableArray *tempDNS = [[NSMutableArray alloc] init];

            for(int i = 0; i < addresses.count; i++)

            {

                struct sockaddr_in* remoteAddr;

                CFDataRef saData = (CFDataRef)CFArrayGetValueAtIndex((__bridge CFArrayRef)addresses, i);

                remoteAddr = (struct sockaddr_in*)CFDataGetBytePtr(saData);

                if(remoteAddr != NULL)

                {

                    const char *strIP41 = inet_ntoa(remoteAddr->sin_addr);

                    NSString *strDNS =[NSString stringWithCString:strIP41 encoding:NSASCIIStringEncoding];

                    [tempDNS addObject:strDNS];

                }

            }

            return tempDNS;

        }

    }

    return nil;

}

 

转载于:https://www.cnblogs.com/dqbs/p/5534115.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值