DNS 도메인 이름 확인 C 코드
1640 단어 네트워킹
그러면 어떻게 도메인 이름에 따라 IP 주소를 얻습니까?C 언어 코드를 보도록 하겠습니다.
#include
#include
#include
#include
#pragma comment(lib,"ws2_32.lib")
// DNS ID tag numq numa numa1 numa2
char DNS_DATA[]={0x12,0x34,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x77,0x77,0x77,0x06,0x66,0x75,0x68,0x6f,0x6d,0x65,0x03,0x6e,0x65,0x74,0x00,//03 www 06 fucome 03 net 00
0x00,0x01,0x00,0x01};// 1 A ; 1 DNS_HDR+ +DNS_QER
int main(int argc,char* argv[])
{
WORD socketVersion = MAKEWORD(2,2);
WSADATA wsaData;
if(WSAStartup(socketVersion, &wsaData) != 0)
{
printf("error");
return 0;
}
// UDP
SOCKET sclient = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
SOCKADDR_IN sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(53);//DNS 53
sin.sin_addr.S_un.S_addr = inet_addr("114.114.114.114");//DNS IP , (192.168.0.1)
//
sendto(sclient, DNS_DATA, sizeof(DNS_DATA), 0, (SOCKADDR *)&sin, sizeof(sin));
char recvData[255];
int ret = recv(sclient, recvData, 255, 0);//
if(ret > 0)// 0
{
for(int i=0;i
그 결과 12 34 81 80 00 100 01 00 00 00 00 0 3 77 77 6 6 6 6 6 6 6 6 8 6 8 6 6 6 8 6 E 65 74 00 1 00 1 0 1 C 0 1 00 1 00 1 00 1 00 1 00 1 00 0 1 00 0 4 3 1 C 5 D C 9 그중 73 l C 5 D C 9 는 www.fuhome.net의 IP 주소: 115.28.93.201
참고 자료: 용검 분투의 블로그
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
DNS 요약도메인 이름 (보통 3급: 3급. UDP 메시지는 질의에 반환됩니다.모든 도메인 이름 서버는 결과를 캐시합니다. 운영 체제에서 먼저 hosts 파일, 즉 로컬 도메인 이름 해석 설정을 검사합니다.도메인 이름 납치도 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.