>> Read Reply from No. 0 article  
RE: [A]DNS 쿼리 프로그램 질문.

등록 2001-06-07 09:47:00     조회 2
이름 차주현    

		벌써 찾았겠죠?? rfc 1035
 ftp://ftp.isi.edu/in-notes/rfc1035.txt  nslookup 소스는 어디 찾아보면 있을꺼에요.
  : 적수동의 나이스한 리눅서 님들께,
: nslookup 비슷한 UDP 프로그램을 만들려고합니다.
: sendto()에 쿼리 도메인을 날렸는데 대답이 없는지 먹통입니다.
:
: DNS 메시지 형식이 나와있는 RFC 자료나 nslookup 소스를
: 구할  수 있는 곳이어없을까여?
:
: 답답합니당....T.T;
:
: 혹은 잘못된 부분이라도 있음 지적해주세여.....부탁.....
:
: 소스 별첨했습니다.
:
: //KYURAK,CHOE
: //usage :      # query 164.124.101.2 53 [enter]
: //                  yahoo.com [enter]
: #include <stdio.h>
: #include<unistd.h>
: #include<arpa/inet.h>
: #include<netinet/in.h>
: #include <stdlib.h>
: #include <errno.h>
: #include <string.h>
: #include <sys/types.h>
: #include <netinet/in.h>
: #include <netdb.h>
: #include <sys/socket.h>
: #include <sys/wait.h>
: #include<stdlib.h>
:
: #define MAXBUFLEN 512
:
: int main(int argc, char *argv<>){
:
:         int sockfd;
:         struct sockaddr_in ns_addr;                                             //name serve
r adress info. :         int recvbytes,addr_len,sendbytes;
:         char recv_buf[MAXBUFLEN],send_buf[MAXBUFLEN+1];      //Buffer for Receving,Sending
:
:         if (argc < 3) {
:             fprintf(stderr,"usage: querier [NameserverAddress] [port]");
:             exit(1);
:         }
:
:         if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {     //Creating socket
:             perror("socket");
:             exit(1);
:         }
:
:         ns_addr.sin_family = AF_INET;
:         ns_addr.sin_port = atoi(argv[2]);                                   //name server adress 
setting :         ns_addr.sin_addr.s_addr =inet_addr(argv[1]);
:         bzero(&(ns_addr.sin_zero), 8);
:
:
:                 if(fgets(send_buf,MAXBUFLEN,stdin)){ //Get Domain From STDIN(KEYBOARD)
:                         send_buf[MAXBUFLEN+1]='';  //and insert to SendBuffer
:                
         }else{
:                                 printf("input error");
:                 
                exit(0);
:                                 }
: 
:                 if ((se
ndbytes=sendto(sockfd, send_buf, strlen(send_buf), 0,
:                         (struct sockaddr *)&ns_addr,
 sizeof(struct sockaddr))) == -1) {
:                         perror("sendto");                   
      //querying By UDP sendto()
: 
:                 }
: 
:                 printf("sent %d bytes of 
query for domain,%sto %s",sendbytes,send_buf,inet_ntoa(ns_addr.sin_addr));
: 
: 
: 
:                 addr_len =
 sizeof(struct sockaddr);
:                 if ((recvbytes=recvfrom(sockfd, recv_buf, MAXBUFLEN, 0,     //Rece
ivev IP from NameServer
:                            (struct sockaddr *)&ns_addr, (socklen_t*)addr_len)) =
= -1) {  // for Query
:                         perror("recvfrom");
:                         e
xit(1);
:                 }
: 
:                 printf("got packet from %s",ns_addr.sin_addr);
:    
             printf("packet is %d bytes long",recvbytes);
:                 recv_buf[recvbytes+1] = '';
:
                 printf("packet contains "%s"",recv_buf);
: 
: 
:         close(sockfd);             
                                                            //close Socket.
: 
:       
  return 0;
: }
: 
: --
: MoonPriest--껌을 씹을 때는 조용히...
이름
암호


>> 관련글
  답장 RE: [A]DNS 쿼리 프로그램 질문.  조성석  2001.06.07  ....
  답장 RE: [A]DNS 쿼리 프로그램 질문.  차주현  2001.06.07  ....
Register [ localhost 목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.84 초 ] 작업시간: [ 0.31 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1789527981
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.