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와 같은 정보를 얻을 수있는 호스트 구조체를 다시 제공합니다.
관련 문제
- 1. IP 주소를 얻는 방법?
- 2. .net을 사용하여 사용자의 IP 주소를 얻는 방법?
- 3. jQuery를 사용하여 클라이언트 IP 주소를 얻는 방법
- 4. PageMethod에서 IP 주소를 얻는 방법?
- 5. 클라이언트 IP 주소를 얻는 방법
- 6. 시스템의 측면 목록을 얻는 방법
- 7. boost :: asio :: ip :: tcp :: socket의 IP 주소를 얻는 방법?
- 8. Silverlight를 사용하여 네트워크 및 해당 IP 주소의 컴퓨터 목록을 얻는 방법?
- 9. Air, Flex 또는 Flash를 사용하여 LAN에 연결된 IP 목록을 얻는 방법
- 10. Android에서 언어 목록을 얻는 방법
- 11. joomla 언어 목록을 얻는 방법
- 12. 상호 친구 목록을 얻는 방법
- 13. Drupal : 모듈 목록을 얻는 방법
- 14. MS Access에서보기 목록을 얻는 방법
- 15. .Net에서 로케일 목록을 얻는 방법
- 16. tcl에서 배열 목록을 얻는 방법
- 17. symfony에서 모듈 목록을 얻는 방법
- 18. http 요청에서 서브넷 IP 주소를 얻는 방법
- 19. ActiveDirectoryMembershipProvider가 FQDN을 승인하지 않습니다.
- 20. Rails를 사용하여 클라이언트 IP 및 서버 IP를 얻는 방법
- 21. WinINet 함수를 사용하여 내 IP 주소를 얻는 방법
- 22. 자바 스크립트를 사용하여 클라이언트의 IP 주소를 얻는 방법
- 23. 에뮬레이터와 IP 주소를 얻는 방법 android
- 24. 질소에서 피어 IP 주소를 얻는 방법
- 25. JavaScript : 사용자에게 IP 주소를 얻는 방법?
- 26. 스프링 빈에서 클라이언트 IP 주소를 얻는 방법
- 27. 소켓에서 IP 주소를 얻는 방법 Windows에서
- 28. IP 주소/서브넷 만 얻는 방법
- 29. Javascript로 로컬 IP 주소를 얻는 방법?
- 30. 자바에서 사용자의 IP 주소를 얻는 방법
FQDN에 대한 코드 예제를 첨부 할 수 있습니까? aaa.bbb.com? – gln
@gln 일반 example.com을 사용했기 때문에 aaa.bbb.com은 지루한 오류 메시지가 나타납니다. – phihag
+1 for ipv6 허용 – jcoder