Show
Ignore:
Timestamp:
04/24/06 09:29:38 (7 years ago)
Author:
ahu
Message:

make dnsscan accept multiple files
move auth nameserver over to ComboAddress?

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/pdns/pdns/dnsscan.cc

    r761 r762  
    2727try 
    2828{ 
    29   PcapPacketReader pr(argv[1]); 
    3029  Socket sock(InterNetwork, Datagram); 
    3130 
     31  /* 
    3232  IPEndpoint remote(argc > 2 ? argv[2] : "127.0.0.1",  
    3333                    argc > 3 ? atoi(argv[3]) : 5300); 
    3434 
     35  */ 
    3536 
    36   while(pr.getUDPPacket()) { 
    37     try { 
    38       MOADNSParser mdp((const char*)pr.d_payload, pr.d_len); 
    39       for(int i=0; i < mdp.d_qname.length(); ++i) 
    40         if(!isalnum(mdp.d_qname[i]) && mdp.d_qname[i]!='.' && mdp.d_qname[i]!='-' && mdp.d_qname[i]!='_') { 
    41           //      cout<<mdp.d_qname<<"|"<<mdp.d_qtype<<"|"<<mdp.d_qclass<<"\n"; 
    42           // sock.sendTo(string(pr.d_payload, pr.d_payload + pr.d_len), remote); 
    43           break; 
     37  if(argc<2) { 
     38    cerr<<"Syntax: dnsscan file1 [file2 ..] "<<endl; 
     39    exit(1); 
     40  } 
     41     
     42  for(int n=1; n < argc; ++n) { 
     43    PcapPacketReader pr(argv[n]); 
     44     
     45    while(pr.getUDPPacket()) { 
     46      try { 
     47        MOADNSParser mdp((const char*)pr.d_payload, pr.d_len); 
     48        for(int i=0; i < mdp.d_qname.length(); ++i) 
     49          if(!isalnum(mdp.d_qname[i]) && mdp.d_qname[i]!='.' && mdp.d_qname[i]!='-' && mdp.d_qname[i]!='_') { 
     50            //    cout<<mdp.d_qname<<"|"<<mdp.d_qtype<<"|"<<mdp.d_qclass<<"\n"; 
     51            // sock.sendTo(string(pr.d_payload, pr.d_payload + pr.d_len), remote); 
     52            break; 
     53          } 
     54        if(mdp.d_qtype > 256 || mdp.d_qclass!=1 ) { 
     55          //    sock.sendTo(string(pr.d_payload, pr.d_payload + pr.d_len), remote); 
     56           
    4457        } 
    45       if(mdp.d_qtype > 256 || mdp.d_qclass!=1 ) { 
     58        for(MOADNSParser::answers_t::const_iterator i=mdp.d_answers.begin(); i!=mdp.d_answers.end(); ++i) {           
     59           
     60        } 
     61         
     62      } 
     63      catch(MOADNSException &e) { 
     64        cout<<"Error from remote "<<U32ToIP(ntohl(*((uint32_t*)&pr.d_ip->ip_src)))<<": "<<e.what()<<"\n"; 
    4665        //      sock.sendTo(string(pr.d_payload, pr.d_payload + pr.d_len), remote); 
    47  
    4866      } 
    49       for(MOADNSParser::answers_t::const_iterator i=mdp.d_answers.begin(); i!=mdp.d_answers.end(); ++i) {           
    50  
    51       } 
    52  
    53     } 
    54     catch(MOADNSException &e) { 
    55       cout<<"Error: "<<e.what()<<"\n"; 
    56       sock.sendTo(string(pr.d_payload, pr.d_payload + pr.d_len), remote); 
    5767    } 
    5868  }