首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取主机名/ip地址的CNAME

问如何获取主机名/ip地址的CNAME
EN

Stack Overflow用户
提问于 2017-06-23 14:49:18
回答 1查看 173关注 0票数 0

我可以使用CFHost类从主机名获得ip地址,反之亦然,但无法从主机名获得CNAME。

任何知道如何解析主机名以获取其CNAME的人。

EN

回答 1

Stack Overflow用户

发布于 2017-06-29 20:20:39

我找到了它的解决方案。希望它能帮助正在寻找它的人:

代码语言:javascript
复制
+ (void) getCNAME {

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    DNSServiceRef serviceRef;

    DNSServiceErrorType error;

    error = DNSServiceQueryRecord(&serviceRef, 0, 0, "apple.com", kDNSServiceType_CNAME,

                                  kDNSServiceClass_IN, queryCallback, NULL);

    if (error != kDNSServiceErr_NoError){

        NSLog(@"DNS Service error");

    }



    DNSServiceProcessResult(serviceRef);

    DNSServiceRefDeallocate(serviceRef);

});}

static void queryCallback(DNSServiceRef sdRef,

                      DNSServiceFlags flags,

                      uint32_t interfaceIndex,

                      DNSServiceErrorType errorCode,

                      const char *fullname,

                      uint16_t rrtype,

                      uint16_t rrclass,

                      uint16_t rdlen,

                      const void *rdata,

                      uint32_t ttl,

                      void *context) {



if (errorCode == kDNSServiceErr_NoError && rdlen > 1) {

    NSMutableData *txtData = [NSMutableData dataWithCapacity:rdlen];



    for (uint16_t i = 1; i < rdlen; i += 256) {

        [txtData appendBytes:rdata + i length:MIN(rdlen - i, 255)];

    }



    NSString *theTXT = [[NSString alloc] initWithBytes:txtData.bytes length:txtData.length encoding:NSASCIIStringEncoding];

    NSLog(@"CNAME: %@", theTXT);

}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44714832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档