now captures packets, yay!
This commit is contained in:
		
							parent
							
								
									e23046f736
								
							
						
					
					
						commit
						578f57bf10
					
				@ -62,8 +62,9 @@ Options
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
--debug
 | 
					--debug
 | 
				
			||||||
--mdns
 | 
					--mdns
 | 
				
			||||||
-t <type> (superfluous)
 | 
					--output <path/to/file>     write query and response(s) to disk with this path prefix (ex: ./samples/dns)
 | 
				
			||||||
-c <class>
 | 
					-t <type> (superfluous)     default ANY (mdns default: PTR)
 | 
				
			||||||
-p <port>
 | 
					-c <class>                  default IN
 | 
				
			||||||
-q <query> (superfluous)
 | 
					-p <port>                   default 53 (mdns default: 5353) (listener is random for DNS and 5353 for mDNS)
 | 
				
			||||||
 | 
					-q <query> (superfluous)    required (ex: daplie.com)
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										41
									
								
								bin/dig.js
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								bin/dig.js
									
									
									
									
									
								
							@ -87,6 +87,35 @@ function hexdump(ab) {
 | 
				
			|||||||
  return head + '\n' + str + '\n' + trail;
 | 
					  return head + '\n' + str + '\n' + trail;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function writeQuery(opts, query, queryAb) {
 | 
				
			||||||
 | 
					  var path = require('path');
 | 
				
			||||||
 | 
					  var filename = query.question[0].name + '.' + query.question[0].typeName.toLowerCase() + '.query.bin';
 | 
				
			||||||
 | 
					  var fullpath = opts.output + '.' + filename;
 | 
				
			||||||
 | 
					  if (-1 !== ['.', '/', '\\' ].indexOf(opts.output[opts.output.length -1])) {
 | 
				
			||||||
 | 
					    fullpath = path.join(opts.output, filename);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fs.writeFileAsync(fullpath, Buffer.from(queryAb)).then(function () {
 | 
				
			||||||
 | 
					    console.log('wrote ' + queryAb.byteLength + ' bytes to ' + fullpath);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var count = 0;
 | 
				
			||||||
 | 
					function writeResponse(opts, query, nb) {
 | 
				
			||||||
 | 
					  var path = require('path');
 | 
				
			||||||
 | 
					  var filename = query.question[0].name + '.' + query.question[0].typeName.toLowerCase() + '.' + count + '.bin';
 | 
				
			||||||
 | 
					  var fullpath = opts.output + '.' + filename;
 | 
				
			||||||
 | 
					  if (-1 !== ['.', '/', '\\' ].indexOf(opts.output[opts.output.length -1])) {
 | 
				
			||||||
 | 
					    fullpath = path.join(opts.output, filename);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  count += 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fs.writeFileAsync(fullpath, nb).then(function () {
 | 
				
			||||||
 | 
					    console.log('wrote ' + nb.length + ' bytes to ' + fullpath);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function request(query, opts) {
 | 
					function request(query, opts) {
 | 
				
			||||||
  var queryAb = dnsjs.DNSPacket.write(query);
 | 
					  var queryAb = dnsjs.DNSPacket.write(query);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -102,7 +131,6 @@ function request(query, opts) {
 | 
				
			|||||||
    console.log('');
 | 
					    console.log('');
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  var count = 0;
 | 
					 | 
				
			||||||
  var handlers = {};
 | 
					  var handlers = {};
 | 
				
			||||||
  var server = dgram.createSocket({
 | 
					  var server = dgram.createSocket({
 | 
				
			||||||
    type: 'udp4'
 | 
					    type: 'udp4'
 | 
				
			||||||
@ -164,14 +192,9 @@ function request(query, opts) {
 | 
				
			|||||||
    console.log('');
 | 
					    console.log('');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (opts.output) {
 | 
					    if (opts.output) {
 | 
				
			||||||
      var filename = packet.question[0].typeName + '-' + count + '.bin';
 | 
					      console.log('');
 | 
				
			||||||
      var fullpath = opts.output + filename;
 | 
					      writeQuery(opts, query, queryAb);
 | 
				
			||||||
 | 
					      writeResponse(opts, query, nb);
 | 
				
			||||||
      count += 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      return fs.writeFileAsync(fullpath, nb).then(function () {
 | 
					 | 
				
			||||||
        console.log('wrote ' + nb.length + ' bytes to ' + fullpath);
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  handlers.onListening = function () {
 | 
					  handlers.onListening = function () {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user