質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
DNSレコード

DNSレコードとは、DNS(ドメインネームシステム)に登録する情報を指します。主なレコードの種類としては「A/AAAA」「PTR」「SOA」「CNAME」「MX」「NS」「TXT」などがあり、それぞれに役割を持ちます。

DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。

Q&A

解決済

rustでdns問い合わせを行いたい

yutadd
yutadd

総合スコア18

DNSレコード

DNSレコードとは、DNS(ドメインネームシステム)に登録する情報を指します。主なレコードの種類としては「A/AAAA」「PTR」「SOA」「CNAME」「MX」「NS」「TXT」などがあり、それぞれに役割を持ちます。

DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。

1回答

0グッド

0クリップ

256閲覧

投稿2023/02/06 02:05

実現したいこと

rust言語を用いてp2pネットワークを作成しています。
今回は、ネットワークへの参加方式にseed.example.comのようなドメインのAレコードに、信頼できるノードをいくつか登録し、ノードは、立ち上がるとDNSからすべてのAレコードを取得し、そこからランダムに接続先をいくつか選ぶというものを作ろうとしています。

そこで、rust言語のdns全Aレコードを問い合わせることができるライブラリとメソッドを教えていただきたいです。

この質問の処理をJavaで実装するとInetAddress[] ina=InetAddress.getAllByName("seed.example.com");
こうなります。
これをrustで実装したいと思っています。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

1

自己解決

こちら、自己解決いたしました!
まず、rustdnsを用いて解決しようと致しましたが、rustdnsをcargo addしたところ、use していなくてもビルドエラーが起こるため、trust_dns_clientを用いて

pub static CLIENT:Lazy<SyncClient<UdpClientConnection>>=Lazy::new(||SyncClient::new(UdpClientConnection::new("8.8.8.8:53".parse().unwrap()).unwrap())); fn fnction_name(){ let name = Name::from_str(name.as_str()).unwrap(); let response: DnsResponse = CLIENT.query(&name, DNSClass::IN, RecordType::A).unwrap();

このような記述を行い、問い合わさせ、最終的にすべてのAレコードを得ることが出来ました。

投稿2023/02/06 05:49

編集2023/02/06 05:50
yutadd

総合スコア18

tatsuya6502👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

DNSレコード

DNSレコードとは、DNS(ドメインネームシステム)に登録する情報を指します。主なレコードの種類としては「A/AAAA」「PTR」「SOA」「CNAME」「MX」「NS」「TXT」などがあり、それぞれに役割を持ちます。

DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。