ddig 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/ddig/cli.rb +2 -3
- data/lib/ddig/ddr/designated_resolver.rb +13 -2
- data/lib/ddig/resolver/doh_h1.rb +1 -1
- data/lib/ddig/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58620e2fc9231b199356c668368c0af0b2b74a9bd6f081eaa6a0332794afe42c
|
4
|
+
data.tar.gz: 027a30588c369ecc5ee419f3821b3d2cef9aff5c27ced47227aba3384adba1bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58c9a6c611f8b68461d0bbfdd5d41f8ea9a3cd5ddf3d748c531f0e4c287b4bee2030ad977b9c4cc5b980011db6cf44efb85a63cbbb978435bed9890d36073dda
|
7
|
+
data.tar.gz: ae0f8a828569c64d6d7faefea81d7ab633a1691a8011a4d12e575c3e963d7fc1431c21e3bebdf18a3d8f01f808836011cf8b7444c91a437117da39f13cb2636b
|
data/lib/ddig/cli.rb
CHANGED
@@ -27,7 +27,7 @@ module Ddig
|
|
27
27
|
opts.on("--udp", "use resolve type of udp(do53)") { |v| @options[:dns_type] = 'do53' }
|
28
28
|
opts.on("--dot", "use resolve type of dot") { |v| @options[:dns_type] = 'dot' }
|
29
29
|
opts.on("--doh-h1", "use resolve type of doh (http/1.1)") { |v| @options[:dns_type] = 'doh_h1' }
|
30
|
-
opts.on("--doh-path=doh-path", "doh service path") { |v| @options[:doh_path] = v }
|
30
|
+
opts.on("--doh-path=doh-path", "doh service path (default: /dns-query{?dns})") { |v| @options[:doh_path] = v }
|
31
31
|
opts.on("--ddr", "discover designated resolvers via ddr (discovery of designated resolvers)") { |v| @options[:ddr] = v }
|
32
32
|
opts.on("-4", "--ipv4", "use IPv4 query transport only") { |v| @options[:ipv4] = v }
|
33
33
|
opts.on("-6", "--ipv6", "use IPv6 query transport only") { |v| @options[:ipv6] = v }
|
@@ -132,8 +132,7 @@ module Ddig
|
|
132
132
|
|
133
133
|
def resolve_doh_h1
|
134
134
|
if @options[:nameserver].nil? || @options[:doh_path].nil?
|
135
|
-
|
136
|
-
exit
|
135
|
+
@options[:doh_path] = '/dns-query{?dns}'
|
137
136
|
end
|
138
137
|
|
139
138
|
doh = Ddig::Resolver::DohH1.new(hostname: @hostname, server: @options[:nameserver], dohpath: @options[:doh_path], port: @options[:port]).lookup
|
@@ -8,6 +8,13 @@ module Ddig
|
|
8
8
|
attr_reader :hostname, :a, :aaaa, :resolver, :errors
|
9
9
|
|
10
10
|
PROTOCOLS = ['http/1.1', 'h2', 'h3', 'dot', 'doq']
|
11
|
+
# Reserved ALPN
|
12
|
+
# https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
|
13
|
+
IGNORE_PROTOCOLS = [
|
14
|
+
"\u001A\u001A", "\u002A\u002A", "\u003A\u003A", "\u004A\u004A", "\u005A\u005A",
|
15
|
+
"\u006A\u006A", "\u007A\u007A", "\u008A\u008A", "\u009A\u009A", "\u00AA\u00AA",
|
16
|
+
"\u00BA\u00BA", "\u00CA\u00CA", "\u00DA\u00DA", "\u00EA\u00EA", "\u00FA\u00FA"
|
17
|
+
] # '**', '::', 'JJ', 'ZZ', 'jj', 'zz'
|
11
18
|
|
12
19
|
def initialize(unencrypted_resolver:, target:, protocol: nil, port: nil, dohpath: nil, address: nil, ip: nil)
|
13
20
|
@target = target
|
@@ -21,8 +28,12 @@ module Ddig
|
|
21
28
|
|
22
29
|
# check protocol
|
23
30
|
unless PROTOCOLS.include?(@protocol)
|
24
|
-
|
25
|
-
|
31
|
+
if IGNORE_PROTOCOLS.include?(@protocol)
|
32
|
+
@errors << "Skip the protocol (protocol: #{@protocol}), as it is a reserved value in ALPN."
|
33
|
+
else
|
34
|
+
@errors << "Not Supportted Protocol (protocol: #{@protocol}). Suported protocol is #{PROTOCOLS.join(' / ')}"
|
35
|
+
puts "#{@errors.join('\n')}"
|
36
|
+
end
|
26
37
|
end
|
27
38
|
|
28
39
|
if @port.nil?
|
data/lib/ddig/resolver/doh_h1.rb
CHANGED
@@ -12,7 +12,7 @@ module Ddig
|
|
12
12
|
attr_reader :hostname, :server, :address, :dohpath, :port
|
13
13
|
attr_reader :a, :aaaa
|
14
14
|
|
15
|
-
def initialize(hostname:, server:, address: nil, dohpath
|
15
|
+
def initialize(hostname:, server:, address: nil, dohpath: '/dns-query{?dns}', port: 443)
|
16
16
|
@hostname = hostname
|
17
17
|
@server = server
|
18
18
|
@address = address
|
data/lib/ddig/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Taketo Takashima
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-04-
|
10
|
+
date: 2025-04-19 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: resolv
|