0
A
答えて
2
ローカルおよび完全修飾ドメイン名のマッピングを取得する間に主な違いはありません。したがって、他のドメイン名と同様にgetaddrinfoを呼び出すことができます。 DNSサーバーは特定のアドレスのみを宣言したり、より大きなリストからいくつかを自由に選ぶことができるため、ドメイン名に関連付けられたすべてのIPアドレスのリストを取得する方法はありません。たとえば、通常google.com
は大陸のサーバーにマップされます。ここで
は、それを使用する方法の例です:
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <string.h>
#include <arpa/inet.h>
int main(int argc, char** argv) {
const char* domain = argc>1 ? argv[1] : "example.com";
struct addrinfo *result, *rp, hints;
memset(&hints, 0, sizeof(hints));
hints.ai_socktype = SOCK_STREAM; // TCP
int tmp = getaddrinfo(domain, NULL, &hints, &result);
if (tmp != 0) {
fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(tmp));
return 1;
}
for (rp = result;rp != NULL;rp = rp->ai_next) {
char buf[INET6_ADDRSTRLEN];
switch (rp->ai_family) {
case AF_INET:{
struct in_addr* a4 = & ((struct sockaddr_in*) rp->ai_addr)->sin_addr;
inet_ntop(rp->ai_family, a4, buf, sizeof(buf));
printf("IPv4: %s\n", buf);
break;}
case AF_INET6:{
struct in6_addr* a6 = & ((struct sockaddr_in6*) rp->ai_addr)->sin6_addr;
inet_ntop(rp->ai_family, a6, buf, sizeof(buf));
printf("IPv6: %s\n", buf);
break;
}}
}
freeaddrinfo(result);
return 0;
}
この意志出力:
IPv6: 2620:0:2d0:200::10
IPv4: 192.0.32.10
0
あなたがC++のソケットライブラリでのgethostbyname()関数を使用する必要があります。 (here is an example)
これはIPのような情報を得ることができるhostent構造体を返します。
関連する問題
- 1. IPアドレスの取得方法
- 2. Azure powershell - VMからFQDNを取得する方法は?
- 3. JavaでFQDNを取得する
- 4. IPアドレスをそれを指すFQDNに変換する方法は?
- 5. 対象ユーザーの(別の)ドメインのFQDNを取得する方法は?
- 6. ホスト名/ IPアドレスのCNAME取得方法
- 7. RustからマシンのIPアドレスのリストを取得する方法は?
- 8. クライアントのIPアドレスを自動的に取得する方法
- 9. IPカメラのストリームをC#に取得する方法は?
- 10. ユーザーのログイン時にユーザーipを取得する方法
- 11. リストのサブセットを取得する方法
- 12. Cで現在のユーザのFQDNを取得する#
- 13. docker0 ip address platformを独立に取得する方法
- 14. 自動スケーリンググループ内のインスタンスのIPを取得する方法
- 15. 他のモバイルデバイスのIPアドレスを取得する方法は?
- 16. 私のシステムのIPアドレスを取得する方法
- 17. Javaでクライアントの元のIPアドレスを取得する方法は?
- 18. Java SEのアクセスポイント/ルータのローカルIpを取得する方法
- 19. アイデンティティサーバー4のクライアントのリモートIPアドレスを取得する方法
- 20. nslookupがFQDNを取得できないときにInetAddressが
- 21. nginx access.logで実際のIPを取得する方法
- 22. AzureでクライアントのIPアドレスを取得する方法C#?
- 23. PPP接続のサーバIPを取得する方法
- 24. WLANのIPアドレスを取得する方法は?
- 25. socket.ioでクライアントのIPアドレスを取得する方法
- 26. R配管でクライアントのIPアドレスを取得する方法
- 27. JavaのIPからサブネットを取得する方法
- 28. AWSクラウドフォーメーション - ec2インスタンスのパブリックIPアドレスを取得する方法
- 29. blazeDSでクライアントのIPアドレスを取得する方法
- 30. クライアントのIPアドレスを取得する方法
FQDNのコード例を添付してください:aaa.bbb.com? – gln
@gln一般的なexample.comでは、aaa.bbb.comはちょうど退屈なエラーメッセージを表示するので、 – phihag
+1はipv6を許可することを覚えています – jcoder