Как получить все записи DNS с iOS SDK - PullRequest
1 голос
/ 21 марта 2011

Я так долго искал решение относительно получения записей DNS с помощью iOS SDK ???

Я могу разрешить IP-адреса для имени хоста здесь , но этоне то, что я хочу ... мне нужно получить все записи DNS, включая PTR , Имя , NS , MX , CNAME и т. Д., Пожалуйста, ваша помощь или фрагмент кода очень ценится

Ответы [ 2 ]

2 голосов
/ 02 марта 2012

Попробуйте изучить

DNSServiceErrorType DNSSD_API DNSServiceQueryRecord
    (
    DNSServiceRef                       *sdRef,
    DNSServiceFlags                     flags,
    uint32_t                            interfaceIndex,
    const char                          *fullname,
    uint16_t                            rrtype,
    uint16_t                            rrclass,
    DNSServiceQueryRecordReply          callBack,
    void                                *context  /* may be NULL */
    );

из

#include <dns_util.h>

Я действительно написал свою оболочку Objective-C, используя эту функцию для всех видов записей DNS ... но я не могу получить время наопубликуйте это где-нибудь

1 голос
/ 30 октября 2014

В случае, если другие сталкиваются с этим в своем поиске и хотят видеть более подробную информацию:

Я обнаружил, что это из #include <dns_sd.h>

// domain is a NSString
DNSServiceRef sdRef;
DNSServiceQueryRecord(&sdRef, 0, 0, [domain UTF8String], kDNSServiceType_MX, kDNSServiceClass_IN, callBack, NULL);
DNSServiceProcessResult(sdRef);
DNSServiceRefDeallocate(sdRef);

Это для тех случаев, когда вам нужны записи MX для домена. callBack - это метод C

static void callBack(
                         DNSServiceRef       sdRef,
                         DNSServiceFlags     theFlags,
                         uint32_t            theInterfaceIndex,
                         DNSServiceErrorType theErrorCode,
                         const char*         theName,
                         uint16_t            theType,
                         uint16_t            theClass,
                         uint16_t            theDataLength,
                         const void*         theData,
                         uint32_t            theTTL,
                         void*               theContext)
{
    // do your magic here...
}

Метод обратного вызова вызывается, когда он находит ответ, обратите внимание, что вы можете получить несколько обратных вызовов. Например, при проверке домена электронной почты моего офиса я получил 7 обратных вызовов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...