Compare commits
	
		
			4 Commits
		
	
	
		
			22f5297582
			...
			25d150de07
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 25d150de07 | ||
|  | 90ed10c129 | ||
|  | 3bf715998d | ||
|  | 6e7a0c57c8 | 
							
								
								
									
										12
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
									
									
									
									
								
							| @ -5,7 +5,7 @@ dig.js | ||||
| | **dig.js** | ||||
| | [mdig.js](https://git.coolaj86.com/coolaj86/mdig.js) | ||||
| | [digd.js](https://git.coolaj86.com/coolaj86/digd.js) | ||||
| | Sponsored by [Daplie](https://daplie.com). | ||||
| | Sponsored by [ppl](https://ppl.family)[.](https://dapliefounder.com) | ||||
| 
 | ||||
| Create and capture DNS and mDNS query and response packets to disk as binary and/or JSON. | ||||
| Options are similar to the Unix `dig` command. Supports dns0x20 security checking. | ||||
| @ -28,7 +28,7 @@ npm install -g 'git+https://git.coolaj86.com/coolaj86/dig.js.git#v1.0.0' | ||||
| ### without git | ||||
| 
 | ||||
| Don't have git? Well, you can also bow down to the gods of the centralized, monopolized, concentrated, *dictator*net | ||||
| (as we like to call it here at Daplie Labs), if that's how you roll: | ||||
| (as we like to call it here at ppl Labs), if that's how you roll: | ||||
| 
 | ||||
| ```bash | ||||
| npm install -g dig.js | ||||
| @ -44,7 +44,7 @@ dig.js [TYPE] <domainname> | ||||
| **Example**: | ||||
| 
 | ||||
| ```bash | ||||
| dig.js daplie.com | ||||
| dig.js coolaj86.com | ||||
| ``` | ||||
| 
 | ||||
| ### mDNS Browser Example | ||||
| @ -64,9 +64,9 @@ dig.js -p 5353 @224.0.0.251 PTR _services._dns-sd._udp.local +time=3 | ||||
| ### Moar Examples | ||||
| 
 | ||||
| ```bash | ||||
| dig.js A daplie.com | ||||
| dig.js A coolaj86.com | ||||
| 
 | ||||
| dig.js @8.8.8.8 A daplie.com | ||||
| dig.js @8.8.8.8 A coolaj86.com | ||||
| ``` | ||||
| 
 | ||||
| Options | ||||
| @ -80,7 +80,7 @@ Options | ||||
| -t <type> (superfluous)     A, CNAME, MX, etc. Also supports -t type<decimal> for "unsupported" types. default ANY (mdns default: PTR) | ||||
| -c <class>                  default IN | ||||
| -p <port>                   default 53 (mdns default: 5353) (listener is random for DNS and 5353 for mDNS) | ||||
| -q <query> (superfluous)    required (ex: daplie.com) | ||||
| -q <query> (superfluous)    required (ex: coolaj86.com) | ||||
| --nameserver <ns>           alias of @<nameserver> | ||||
| --timeout <ms>              alias of +time=<seconds>, but in milliseconds | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										56
									
								
								bin/dig.js
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								bin/dig.js
									
									
									
									
									
								
							| @ -22,7 +22,7 @@ cli.parse({ | ||||
| , 'nameserver': [ false, 'the nameserver to use for DNS resolution (defaults to ' + defaultNameservers.join(',') + ')', 'string' ] | ||||
| //, 'serve': [ 's', 'path to json file with array of responses to issue for given queries', 'string' ]
 | ||||
| , 'type': [ 't', 'type (defaults to ANY for dns and PTR for mdns)', 'string' ] | ||||
| , 'query': [ 'q', 'a superfluous explicit option to set the query as a command line flag' ] | ||||
| , 'query': [ 'q', 'a superfluous explicit option to set the query as a command line flag', 'string' ] | ||||
| , 'norecase': [ false, 'Disable dns0x20 security checking (mixed casing). See https://dyn.com/blog/use-of-bit-0x20-in-dns-labels/' ] | ||||
| , 'recase': [ false, "Print the dns0x20 casing as-is rather than converting it back to lowercase. This is the default when explicitly using mixed case." ] | ||||
| }); | ||||
| @ -30,14 +30,16 @@ cli.parse({ | ||||
| var common = require('../common.js'); | ||||
| 
 | ||||
| cli.main(function (args, cli) { | ||||
|   cli.implicitType = cli.type; | ||||
|   cli.implicitQuery = cli.query; | ||||
|   args.forEach(function (arg) { | ||||
|     if (typeRe.test(arg) || -1 !== common.types.concat([ 'ANY' ]).indexOf(arg.toUpperCase())) { | ||||
|       if (cli.type) { | ||||
|       if (cli.implicitType) { | ||||
|         console.error("'type' was specified more than once"); | ||||
|         process.exit(1); | ||||
|         return; | ||||
|       } | ||||
|       cli.type = cli.t = arg.toUpperCase(); | ||||
|       cli.implicitType = cli.t = arg.toUpperCase(); | ||||
|       return; | ||||
|     } | ||||
| 
 | ||||
| @ -81,15 +83,41 @@ cli.main(function (args, cli) { | ||||
|       return; | ||||
|     } | ||||
| 
 | ||||
|     if (cli.query) { | ||||
|       console.error("'query' was specified more than once or unrecognized flag: " + cli.query + ", " + arg); | ||||
|     if ('string' === typeof cli.implicitQuery) { | ||||
|       console.error("'query' was specified more than once or unrecognized flag: " + cli.implicitQuery + ", " + arg); | ||||
|       process.exit(1); | ||||
|       return; | ||||
|     } | ||||
|     cli.query = cli.q = arg; | ||||
|     cli.implicitQuery = cli.q = arg; | ||||
| 
 | ||||
|   }); | ||||
| 
 | ||||
| 
 | ||||
|   // it can happen that a TLD is created with the name of a common type
 | ||||
|   if (!cli.type && cli.implicitType && !cli.implicitQuery) { | ||||
|     cli.implicitQuery = cli.implicitType; | ||||
|     cli.implicitType = null; | ||||
|   } | ||||
|   if ('string' === typeof cli.implicitQuery) { | ||||
|     cli.query = cli.implicitQuery; | ||||
|   } | ||||
|   if (cli.implicitType) { | ||||
|     cli.type = cli.implicitType; | ||||
|   } | ||||
|   if ('string' !== typeof cli.query) { | ||||
|     console.error(''); | ||||
|     console.error('Usage:'); | ||||
|     console.error('dig.js [@server] [TYPE] [domain]'); | ||||
|     console.error(''); | ||||
|     console.error('Example:'); | ||||
|     console.error('dig.js daplie.com'); | ||||
|     console.error(''); | ||||
|     process.exit(1); | ||||
|   } | ||||
|   if (cli.query !== cli.query.toLowerCase()) { | ||||
|     cli.norecase = true; | ||||
|   } | ||||
| 
 | ||||
|   if (cli.mdns) { | ||||
|     if (!cli.type) { | ||||
|       cli.type = cli.t = 'PTR'; | ||||
| @ -100,7 +128,7 @@ cli.main(function (args, cli) { | ||||
|     if (!cli.nameserver) { | ||||
|       cli.nameserver = '224.0.0.251'; | ||||
|     } | ||||
|     if (!cli.query) { | ||||
|     if ('string' !== typeof cli.query) { | ||||
|       cli.query = '_services._dns-sd._udp.local'; | ||||
|     } | ||||
|     if (!cli.timeout) { | ||||
| @ -112,10 +140,6 @@ cli.main(function (args, cli) { | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   if (cli.query !== cli.query.toLowerCase()) { | ||||
|     cli.norecase = true; | ||||
|   } | ||||
| 
 | ||||
|   if (!cli.norecase) { | ||||
|     cli.casedQuery = cli.query.split('').map(function (ch) { | ||||
|       // dns0x20 takes advantage of the fact that the binary operation for toUpperCase is
 | ||||
| @ -138,16 +162,6 @@ cli.main(function (args, cli) { | ||||
|   if (!cli.class) { | ||||
|     cli.class = cli.c = 'IN'; | ||||
|   } | ||||
|   if (!cli.query) { | ||||
|     console.error(''); | ||||
|     console.error('Usage:'); | ||||
|     console.error('dig.js [@server] [TYPE] [domain]'); | ||||
|     console.error(''); | ||||
|     console.error('Example:'); | ||||
|     console.error('dig.js daplie.com'); | ||||
|     console.error(''); | ||||
|     process.exit(1); | ||||
|   } | ||||
| 
 | ||||
|   var query = { | ||||
|     header: { | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "dig.js", | ||||
|   "version": "1.3.7", | ||||
|   "version": "1.3.9", | ||||
|   "description": "Create and capture DNS and mDNS query and response packets to disk as binary and/or JSON. Options are similar to the Unix `dig` command.", | ||||
|   "main": "index.js", | ||||
|   "homepage": "https://git.coolaj86.com/coolaj86/dig.js", | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user