DNSRequest - DNSリクエスト

DNSRequest - DNSリクエスト

ネームサーバへ問い合わせし、ホスト名からIPアドレスの情報を得ます。

EthernetNetIf をインポートして使用する。

初期化

DNSRequest name;

name:任意の名前

正引きリクエスト

ret = name.resolv(fqdn);

fqdn:ホスト名 (char *)
ret:エラーコード (DNSRequestErr)

ret = name.resolv(host);

host:ホスト名 (Host *)
ret:エラーコード (DNSRequestErr)

結果取得

resolv で char * を渡した場合。(Host * を渡した場合は Host.setIp() される)

ret = name.getResult(addr);

addr:IPアドレス (char *)
ret:エラーコード (IpAddr *)

割り込みの設定

name.setOnReply(pfnc)

pfnc:ポインタ (void (*pMethod)(DNSReply))

DNSルックアップ

#include "mbed.h"
#include "EtnernetNetIf.h"
#include "DNSRequest.h"

EtnernetNetIf eth;
DNSRequest dns;

void onDNSRequestReply (DNSReply r) {
    if (r == DNS_FOUND) {
        printf("Resolved %d.%d.%d.%d\r\n", (unsigned char)host->getIp()[0], (unsigned char)host->getIp()[1], (unsigned char)host->getIp()[2], (unsigned char)host->getIp()[3]);
    }
}

int main () {
    Host host(IpAddr(0,0,0,0), 0, "mbed.org");

    if (eth.setup()) {
        return -1;
    }

    dns.setOnReply(&onDNSRequestReply);
    dns.resolve(host);

    while () {
        Net::poll();
    }
}

詳細 戻る


Please log in to post comments.