ronin-support 0.5.1 → 1.0.0.beta1
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 +7 -0
- data/.editorconfig +11 -0
- data/.github/workflows/ruby.yml +27 -0
- data/.gitignore +7 -6
- data/.mailmap +1 -0
- data/.ruby-version +1 -0
- data/.yardopts +1 -2
- data/ChangeLog.md +533 -137
- data/Gemfile +20 -20
- data/README.md +137 -61
- data/Rakefile +29 -10
- data/data/text/homoglyphs/ascii.txt +8 -0
- data/data/text/homoglyphs/cyrillic.txt +33 -0
- data/data/text/homoglyphs/full_width.txt +81 -0
- data/data/text/homoglyphs/greek.txt +21 -0
- data/data/text/homoglyphs/latin_numbers.txt +14 -0
- data/data/text/homoglyphs/punctuation.txt +7 -0
- data/data/text/patterns/network/public_suffix.rb.erb +44 -0
- data/examples/ssl_proxy.rb +38 -0
- data/examples/tcp_proxy.rb +41 -0
- data/gemspec.yml +25 -15
- data/lib/ronin/support/archive/core_ext/file.rb +118 -0
- data/lib/ronin/{formatting/sql.rb → support/archive/core_ext.rb} +6 -7
- data/lib/ronin/support/archive/mixin.rb +213 -0
- data/lib/ronin/support/archive/tar/reader.rb +135 -0
- data/lib/ronin/support/archive/tar/writer.rb +197 -0
- data/lib/ronin/support/archive/tar.rb +155 -0
- data/lib/ronin/support/archive/zip/reader/entry.rb +134 -0
- data/lib/ronin/support/archive/zip/reader/statistics.rb +76 -0
- data/lib/ronin/support/archive/zip/reader.rb +273 -0
- data/lib/ronin/support/archive/zip/writer.rb +175 -0
- data/lib/ronin/support/archive/zip.rb +105 -0
- data/lib/ronin/support/archive.rb +211 -0
- data/lib/ronin/support/binary/array.rb +255 -0
- data/lib/ronin/support/binary/bit_flip.rb +147 -0
- data/lib/ronin/support/binary/buffer.rb +2027 -0
- data/lib/ronin/support/binary/byte_slice.rb +324 -0
- data/lib/ronin/support/binary/core_ext/array.rb +75 -0
- data/lib/ronin/support/binary/core_ext/float.rb +80 -0
- data/lib/ronin/support/binary/core_ext/integer.rb +305 -0
- data/lib/ronin/support/binary/core_ext/io.rb +38 -0
- data/lib/ronin/support/binary/core_ext/string.rb +115 -0
- data/lib/ronin/{formatting/extensions/text.rb → support/binary/core_ext.rb} +9 -9
- data/lib/ronin/support/binary/cstring.rb +259 -0
- data/lib/ronin/support/binary/ctypes/aggregate_type.rb +98 -0
- data/lib/ronin/support/binary/ctypes/arch/arm/big_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/arm.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/arm64/big_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/arm64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/mips/little_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/mips.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/mips64/little_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/mips64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/ppc.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/ppc64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/x86.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/x86_64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch.rb +30 -0
- data/lib/ronin/support/binary/ctypes/array_object_type.rb +164 -0
- data/lib/ronin/support/binary/ctypes/array_type.rb +232 -0
- data/lib/ronin/support/binary/ctypes/big_endian.rb +195 -0
- data/lib/ronin/support/binary/ctypes/char_type.rb +59 -0
- data/lib/ronin/support/binary/ctypes/char_types.rb +39 -0
- data/lib/ronin/support/binary/ctypes/enum_type.rb +181 -0
- data/lib/ronin/support/binary/ctypes/float32_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/float64_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/float_type.rb +62 -0
- data/lib/ronin/support/binary/ctypes/int16_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/int32_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/int64_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/int8_type.rb +41 -0
- data/lib/ronin/support/binary/ctypes/int_type.rb +62 -0
- data/lib/ronin/support/binary/ctypes/little_endian.rb +195 -0
- data/lib/ronin/support/binary/ctypes/mixin.rb +135 -0
- data/lib/ronin/support/binary/ctypes/native.rb +205 -0
- data/lib/ronin/support/binary/ctypes/network.rb +29 -0
- data/lib/ronin/support/binary/ctypes/object_type.rb +55 -0
- data/lib/ronin/support/binary/ctypes/os/bsd.rb +65 -0
- data/lib/ronin/support/binary/ctypes/os/freebsd.rb +215 -0
- data/lib/ronin/support/binary/ctypes/os/linux.rb +193 -0
- data/lib/ronin/support/binary/ctypes/os/macos.rb +151 -0
- data/lib/ronin/support/binary/ctypes/os/netbsd.rb +147 -0
- data/lib/ronin/support/binary/ctypes/os/openbsd.rb +168 -0
- data/lib/ronin/support/binary/ctypes/os/unix.rb +78 -0
- data/lib/ronin/support/binary/ctypes/os/windows.rb +125 -0
- data/lib/ronin/support/binary/ctypes/os.rb +125 -0
- data/lib/ronin/support/binary/ctypes/scalar_type.rb +200 -0
- data/lib/ronin/support/binary/ctypes/string_type.rb +143 -0
- data/lib/ronin/support/binary/ctypes/struct_object_type.rb +173 -0
- data/lib/ronin/support/binary/ctypes/struct_type.rb +359 -0
- data/lib/ronin/support/binary/ctypes/type.rb +193 -0
- data/lib/ronin/support/binary/ctypes/type_resolver.rb +206 -0
- data/lib/ronin/support/binary/ctypes/uint16_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/uint32_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/uint64_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/uint8_type.rb +41 -0
- data/lib/ronin/support/binary/ctypes/uint_type.rb +59 -0
- data/lib/ronin/support/binary/ctypes/unbounded_array_type.rb +258 -0
- data/lib/ronin/support/binary/ctypes/union_object_type.rb +173 -0
- data/lib/ronin/support/binary/ctypes/union_type.rb +261 -0
- data/lib/ronin/support/binary/ctypes.rb +462 -0
- data/lib/ronin/support/binary/hexdump/core_ext/file.rb +118 -0
- data/lib/ronin/support/binary/hexdump/core_ext/string.rb +115 -0
- data/lib/ronin/support/binary/hexdump/core_ext.rb +20 -0
- data/lib/ronin/support/binary/hexdump/parser.rb +492 -0
- data/lib/ronin/support/binary/hexdump.rb +20 -0
- data/lib/ronin/support/binary/memory.rb +268 -0
- data/lib/ronin/support/binary/packet.rb +33 -0
- data/lib/ronin/support/binary/stack.rb +256 -0
- data/lib/ronin/support/binary/stream/methods.rb +1755 -0
- data/lib/ronin/support/binary/stream.rb +151 -0
- data/lib/ronin/support/binary/struct/member.rb +86 -0
- data/lib/ronin/support/binary/struct.rb +830 -0
- data/lib/ronin/support/binary/template.rb +284 -0
- data/lib/ronin/support/binary/union.rb +162 -0
- data/lib/ronin/support/binary.rb +26 -0
- data/lib/ronin/support/cli/ansi.rb +330 -0
- data/lib/ronin/support/cli/io_shell/core_ext/io.rb +67 -0
- data/lib/ronin/{fuzzing/extensions.rb → support/cli/io_shell/core_ext.rb} +6 -7
- data/lib/ronin/support/cli/io_shell.rb +161 -0
- data/lib/ronin/support/cli/printing.rb +216 -0
- data/lib/ronin/support/cli.rb +20 -0
- data/lib/ronin/support/compression/core_ext/file.rb +70 -0
- data/lib/ronin/support/compression/core_ext/string.rb +101 -0
- data/lib/ronin/{formatting/html.rb → support/compression/core_ext.rb} +6 -7
- data/lib/ronin/support/compression/gzip/reader.rb +70 -0
- data/lib/ronin/support/compression/gzip/writer.rb +74 -0
- data/lib/ronin/support/compression/gzip.rb +105 -0
- data/lib/ronin/support/compression/mixin.rb +180 -0
- data/lib/ronin/{network/extensions/esmtp/net.rb → support/compression/zlib.rb} +9 -10
- data/lib/ronin/support/compression.rb +174 -0
- data/lib/ronin/{extensions → support/core_ext}/enumerable.rb +5 -6
- data/lib/ronin/{extensions → support/core_ext}/file.rb +11 -34
- data/lib/ronin/support/core_ext/integer.rb +37 -0
- data/lib/ronin/support/core_ext/ipaddr.rb +65 -0
- data/lib/ronin/{extensions → support/core_ext}/kernel.rb +10 -9
- data/lib/ronin/{extensions → support/core_ext}/resolv.rb +5 -28
- data/lib/ronin/{extensions → support/core_ext}/string.rb +117 -57
- data/lib/ronin/support/core_ext.rb +33 -0
- data/lib/ronin/support/crypto/cert.rb +522 -0
- data/lib/ronin/support/crypto/cert_chain.rb +204 -0
- data/lib/ronin/support/crypto/cipher/aes.rb +71 -0
- data/lib/ronin/support/crypto/cipher/aes128.rb +54 -0
- data/lib/ronin/support/crypto/cipher/aes256.rb +54 -0
- data/lib/ronin/support/crypto/cipher.rb +194 -0
- data/lib/ronin/support/crypto/core_ext/file.rb +660 -0
- data/lib/ronin/support/crypto/core_ext/string.rb +548 -0
- data/lib/ronin/{binary.rb → support/crypto/core_ext.rb} +7 -8
- data/lib/ronin/support/crypto/hmac.rb +48 -0
- data/lib/ronin/support/crypto/key/dh.rb +122 -0
- data/lib/ronin/support/crypto/key/dsa.rb +103 -0
- data/lib/ronin/support/crypto/key/ec.rb +99 -0
- data/lib/ronin/support/crypto/key/methods.rb +163 -0
- data/lib/ronin/support/crypto/key/rsa.rb +169 -0
- data/lib/ronin/support/crypto/key.rb +105 -0
- data/lib/ronin/support/crypto/mixin.rb +620 -0
- data/lib/ronin/{network/extensions/http/net.rb → support/crypto/openssl.rb} +9 -10
- data/lib/ronin/support/crypto.rb +779 -0
- data/lib/ronin/support/encoding/base16/core_ext/string.rb +63 -0
- data/lib/ronin/support/encoding/base16/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/base16.rb +82 -0
- data/lib/ronin/support/encoding/base32/core_ext/string.rb +63 -0
- data/lib/ronin/support/encoding/base32/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/base32.rb +164 -0
- data/lib/ronin/support/encoding/base64/core_ext/string.rb +76 -0
- data/lib/ronin/support/encoding/base64/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/base64.rb +78 -0
- data/lib/ronin/support/encoding/c/core_ext/integer.rb +82 -0
- data/lib/ronin/support/encoding/c/core_ext/string.rb +125 -0
- data/lib/ronin/support/encoding/c/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/c.rb +277 -0
- data/lib/ronin/support/encoding/core_ext/string.rb +107 -0
- data/lib/ronin/support/encoding/core_ext.rb +33 -0
- data/lib/ronin/support/encoding/hex/core_ext/integer.rb +82 -0
- data/lib/ronin/support/encoding/hex/core_ext/string.rb +133 -0
- data/lib/ronin/support/encoding/hex/core_ext.rb +22 -0
- data/lib/ronin/support/encoding/hex.rb +248 -0
- data/lib/ronin/support/encoding/html/core_ext/integer.rb +106 -0
- data/lib/ronin/support/encoding/html/core_ext/string.rb +130 -0
- data/lib/ronin/support/encoding/html/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/html.rb +233 -0
- data/lib/ronin/support/encoding/http/core_ext/integer.rb +95 -0
- data/lib/ronin/support/encoding/http/core_ext/string.rb +129 -0
- data/lib/ronin/support/encoding/http/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/http.rb +241 -0
- data/lib/ronin/support/encoding/js/core_ext/integer.rb +67 -0
- data/lib/ronin/support/encoding/js/core_ext/string.rb +125 -0
- data/lib/ronin/support/encoding/js/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/js.rb +279 -0
- data/lib/ronin/support/encoding/powershell/core_ext/integer.rb +87 -0
- data/lib/ronin/support/encoding/powershell/core_ext/string.rb +145 -0
- data/lib/ronin/support/encoding/powershell/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/powershell.rb +297 -0
- data/lib/ronin/support/encoding/punycode/core_ext/string.rb +63 -0
- data/lib/ronin/support/encoding/punycode/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/punycode.rb +76 -0
- data/lib/ronin/support/encoding/quoted_printable/core_ext/string.rb +75 -0
- data/lib/ronin/support/encoding/quoted_printable/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/quoted_printable.rb +102 -0
- data/lib/ronin/support/encoding/ruby/core_ext/string.rb +129 -0
- data/lib/ronin/{formatting/binary.rb → support/encoding/ruby/core_ext.rb} +6 -7
- data/lib/ronin/support/encoding/ruby.rb +235 -0
- data/lib/ronin/support/encoding/shell/core_ext/integer.rb +89 -0
- data/lib/ronin/support/encoding/shell/core_ext/string.rb +134 -0
- data/lib/ronin/support/encoding/shell/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/shell.rb +293 -0
- data/lib/ronin/{network/extensions → support/encoding}/smtp.rb +7 -7
- data/lib/ronin/support/encoding/sql/core_ext/string.rb +114 -0
- data/lib/ronin/{formatting/http.rb → support/encoding/sql/core_ext.rb} +6 -7
- data/lib/ronin/support/encoding/sql.rb +124 -0
- data/lib/ronin/support/encoding/uri/core_ext/integer.rb +149 -0
- data/lib/ronin/support/encoding/uri/core_ext/string.rb +195 -0
- data/lib/ronin/support/encoding/uri/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/uri.rb +424 -0
- data/lib/ronin/support/encoding/uuencoding/core_ext/string.rb +73 -0
- data/lib/ronin/support/encoding/uuencoding/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/uuencoding.rb +70 -0
- data/lib/ronin/support/encoding/xml/core_ext/integer.rb +100 -0
- data/lib/ronin/support/encoding/xml/core_ext/string.rb +124 -0
- data/lib/ronin/support/encoding/xml/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/xml.rb +328 -0
- data/lib/ronin/support/encoding.rb +46 -0
- data/lib/ronin/support/home.rb +88 -0
- data/lib/ronin/support/mixin.rb +42 -0
- data/lib/ronin/support/network/asn/dns_record.rb +112 -0
- data/lib/ronin/support/network/asn/list.rb +269 -0
- data/lib/ronin/support/network/asn/record.rb +164 -0
- data/lib/ronin/support/network/asn/record_set.rb +226 -0
- data/lib/ronin/support/network/asn.rb +88 -0
- data/lib/ronin/{binary/hexdump.rb → support/network/core_ext.rb} +6 -7
- data/lib/ronin/support/network/dns/idn.rb +38 -0
- data/lib/ronin/support/network/dns/mixin.rb +941 -0
- data/lib/ronin/support/network/dns/resolver.rb +707 -0
- data/lib/ronin/support/network/dns.rb +1109 -0
- data/lib/ronin/support/network/domain.rb +70 -0
- data/lib/ronin/support/network/email_address.rb +574 -0
- data/lib/ronin/support/network/esmtp/mixin.rb +115 -0
- data/lib/ronin/support/network/exceptions.rb +43 -0
- data/lib/ronin/support/network/ftp/mixin.rb +106 -0
- data/lib/ronin/support/network/host.rb +1473 -0
- data/lib/ronin/support/network/http/cookie.rb +245 -0
- data/lib/ronin/support/network/http/core_ext/uri/http.rb +63 -0
- data/lib/ronin/support/network/http/core_ext.rb +19 -0
- data/lib/ronin/support/network/http/mixin.rb +890 -0
- data/lib/ronin/support/network/http/request.rb +215 -0
- data/lib/ronin/support/network/http/set_cookie.rb +210 -0
- data/lib/ronin/support/network/http/user_agents.rb +115 -0
- data/lib/ronin/support/network/http.rb +2582 -0
- data/lib/ronin/support/network/imap/mixin.rb +133 -0
- data/lib/ronin/support/network/ip/mixin.rb +114 -0
- data/lib/ronin/support/network/ip.rb +540 -0
- data/lib/ronin/support/network/ip_range/cidr.rb +252 -0
- data/lib/ronin/support/network/ip_range/glob.rb +309 -0
- data/lib/ronin/support/network/ip_range/range.rb +249 -0
- data/lib/ronin/support/network/ip_range.rb +284 -0
- data/lib/ronin/support/network/mixin.rb +58 -0
- data/lib/ronin/support/network/packet.rb +27 -0
- data/lib/ronin/support/network/pop3/mixin.rb +113 -0
- data/lib/ronin/support/network/proxy.rb +602 -0
- data/lib/ronin/support/network/public_suffix/list.rb +339 -0
- data/lib/ronin/support/network/public_suffix/suffix.rb +118 -0
- data/lib/ronin/support/network/public_suffix/suffix_set.rb +150 -0
- data/lib/ronin/support/network/public_suffix.rb +41 -0
- data/lib/ronin/support/network/smtp/email.rb +190 -0
- data/lib/ronin/support/network/smtp/mixin.rb +290 -0
- data/lib/ronin/{extensions/meta.rb → support/network/smtp.rb} +6 -7
- data/lib/ronin/support/network/ssl/local_cert.rb +114 -0
- data/lib/ronin/support/network/ssl/local_key.rb +84 -0
- data/lib/ronin/support/network/ssl/mixin.rb +740 -0
- data/lib/ronin/{network/extensions/imap/net.rb → support/network/ssl/openssl.rb} +9 -10
- data/lib/ronin/support/network/ssl/proxy.rb +296 -0
- data/lib/ronin/support/network/ssl.rb +173 -0
- data/lib/ronin/support/network/tcp/mixin.rb +400 -0
- data/lib/ronin/support/network/tcp/proxy.rb +435 -0
- data/lib/ronin/support/network/tcp.rb +443 -0
- data/lib/ronin/support/network/telnet/mixin.rb +150 -0
- data/lib/ronin/support/network/telnet.rb +90 -0
- data/lib/ronin/support/network/tld/list.rb +266 -0
- data/lib/ronin/support/network/tld.rb +41 -0
- data/lib/ronin/support/network/tls/mixin.rb +670 -0
- data/lib/ronin/support/network/tls/proxy.rb +135 -0
- data/lib/ronin/support/network/tls.rb +53 -0
- data/lib/ronin/support/network/udp/mixin.rb +389 -0
- data/lib/ronin/support/network/udp/proxy.rb +192 -0
- data/lib/ronin/support/network/udp.rb +435 -0
- data/lib/ronin/support/network/unix/mixin.rb +273 -0
- data/lib/ronin/support/network.rb +37 -0
- data/lib/ronin/support/path.rb +136 -0
- data/lib/ronin/{network/extensions/dns/net.rb → support/text/core_ext/regexp.rb} +8 -9
- data/lib/ronin/support/text/core_ext/string.rb +46 -0
- data/lib/ronin/support/text/core_ext.rb +23 -0
- data/lib/ronin/support/text/entropy/core_ext/string.rb +45 -0
- data/lib/ronin/support/text/entropy/core_ext.rb +19 -0
- data/lib/ronin/support/text/entropy.rb +66 -0
- data/lib/ronin/support/text/erb/mixin.rb +44 -0
- data/lib/ronin/support/text/erb.rb +19 -0
- data/lib/ronin/support/text/homoglyph/core_ext/string.rb +108 -0
- data/lib/ronin/{formatting/digest.rb → support/text/homoglyph/core_ext.rb} +6 -7
- data/lib/ronin/{network/http/exceptions/unknown_request.rb → support/text/homoglyph/exceptions.rb} +10 -9
- data/lib/ronin/support/text/homoglyph/table.rb +228 -0
- data/lib/ronin/support/text/homoglyph.rb +142 -0
- data/lib/ronin/support/text/mixin.rb +31 -0
- data/lib/ronin/support/text/patterns/credentials.rb +75 -0
- data/lib/ronin/support/text/patterns/crypto.rb +67 -0
- data/lib/ronin/support/text/patterns/file_system.rb +93 -0
- data/lib/ronin/support/text/patterns/language.rb +37 -0
- data/lib/ronin/support/text/patterns/network/public_suffix.rb +44 -0
- data/lib/ronin/support/text/patterns/network.rb +140 -0
- data/lib/ronin/support/text/patterns/numeric.rb +52 -0
- data/lib/ronin/support/text/patterns/pii.rb +105 -0
- data/lib/ronin/support/text/patterns/source_code.rb +148 -0
- data/lib/ronin/support/text/patterns.rb +25 -0
- data/lib/ronin/support/text/random/mixin.rb +437 -0
- data/lib/ronin/support/text/random.rb +419 -0
- data/lib/ronin/support/text/typo/core_ext/string.rb +123 -0
- data/lib/ronin/support/text/typo/core_ext.rb +19 -0
- data/lib/ronin/support/text/typo/exceptions.rb +28 -0
- data/lib/ronin/support/text/typo/generator.rb +161 -0
- data/lib/ronin/support/text/typo.rb +260 -0
- data/lib/ronin/support/text.rb +26 -0
- data/lib/ronin/support/version.rb +6 -7
- data/lib/ronin/support.rb +20 -15
- data/ronin-support.gemspec +3 -1
- metadata +462 -369
- data/.gemtest +0 -0
- data/lib/ronin/binary/hexdump/parser.rb +0 -403
- data/lib/ronin/binary/struct.rb +0 -567
- data/lib/ronin/binary/template.rb +0 -454
- data/lib/ronin/extensions/ip_addr.rb +0 -217
- data/lib/ronin/extensions/meta/object.rb +0 -24
- data/lib/ronin/extensions/regexp.rb +0 -157
- data/lib/ronin/extensions.rb +0 -29
- data/lib/ronin/formatting/extensions/binary/array.rb +0 -61
- data/lib/ronin/formatting/extensions/binary/base64.rb +0 -106
- data/lib/ronin/formatting/extensions/binary/file.rb +0 -77
- data/lib/ronin/formatting/extensions/binary/float.rb +0 -65
- data/lib/ronin/formatting/extensions/binary/integer.rb +0 -180
- data/lib/ronin/formatting/extensions/binary/string.rb +0 -345
- data/lib/ronin/formatting/extensions/binary.rb +0 -26
- data/lib/ronin/formatting/extensions/digest/file.rb +0 -129
- data/lib/ronin/formatting/extensions/digest/string.rb +0 -86
- data/lib/ronin/formatting/extensions/digest.rb +0 -21
- data/lib/ronin/formatting/extensions/html/integer.rb +0 -142
- data/lib/ronin/formatting/extensions/html/string.rb +0 -194
- data/lib/ronin/formatting/extensions/html.rb +0 -21
- data/lib/ronin/formatting/extensions/http/integer.rb +0 -69
- data/lib/ronin/formatting/extensions/http/string.rb +0 -110
- data/lib/ronin/formatting/extensions/http.rb +0 -21
- data/lib/ronin/formatting/extensions/sql/string.rb +0 -128
- data/lib/ronin/formatting/extensions/sql.rb +0 -20
- data/lib/ronin/formatting/extensions/text/array.rb +0 -137
- data/lib/ronin/formatting/extensions/text/string.rb +0 -297
- data/lib/ronin/formatting/extensions.rb +0 -24
- data/lib/ronin/formatting/text.rb +0 -20
- data/lib/ronin/formatting.rb +0 -25
- data/lib/ronin/fuzzing/extensions/string.rb +0 -209
- data/lib/ronin/fuzzing/fuzzer.rb +0 -110
- data/lib/ronin/fuzzing/fuzzing.rb +0 -360
- data/lib/ronin/fuzzing/mutator.rb +0 -161
- data/lib/ronin/fuzzing/repeater.rb +0 -81
- data/lib/ronin/fuzzing/template.rb +0 -133
- data/lib/ronin/fuzzing.rb +0 -21
- data/lib/ronin/mixin.rb +0 -89
- data/lib/ronin/network/dns.rb +0 -201
- data/lib/ronin/network/esmtp.rb +0 -113
- data/lib/ronin/network/extensions/dns.rb +0 -20
- data/lib/ronin/network/extensions/esmtp.rb +0 -20
- data/lib/ronin/network/extensions/http/uri/http.rb +0 -228
- data/lib/ronin/network/extensions/http.rb +0 -21
- data/lib/ronin/network/extensions/imap.rb +0 -20
- data/lib/ronin/network/extensions/pop3/net.rb +0 -24
- data/lib/ronin/network/extensions/pop3.rb +0 -20
- data/lib/ronin/network/extensions/smtp/net.rb +0 -24
- data/lib/ronin/network/extensions/ssl/net.rb +0 -24
- data/lib/ronin/network/extensions/ssl.rb +0 -20
- data/lib/ronin/network/extensions/tcp/net.rb +0 -24
- data/lib/ronin/network/extensions/tcp.rb +0 -20
- data/lib/ronin/network/extensions/telnet/net.rb +0 -24
- data/lib/ronin/network/extensions/telnet.rb +0 -20
- data/lib/ronin/network/extensions/udp/net.rb +0 -24
- data/lib/ronin/network/extensions/udp.rb +0 -20
- data/lib/ronin/network/extensions.rb +0 -29
- data/lib/ronin/network/ftp.rb +0 -149
- data/lib/ronin/network/http/exceptions.rb +0 -20
- data/lib/ronin/network/http/http.rb +0 -1127
- data/lib/ronin/network/http/proxy.rb +0 -330
- data/lib/ronin/network/http.rb +0 -22
- data/lib/ronin/network/imap.rb +0 -158
- data/lib/ronin/network/mixins/dns.rb +0 -55
- data/lib/ronin/network/mixins/esmtp.rb +0 -164
- data/lib/ronin/network/mixins/ftp.rb +0 -155
- data/lib/ronin/network/mixins/http.rb +0 -227
- data/lib/ronin/network/mixins/imap.rb +0 -156
- data/lib/ronin/network/mixins/mixin.rb +0 -58
- data/lib/ronin/network/mixins/pop3.rb +0 -149
- data/lib/ronin/network/mixins/smtp.rb +0 -159
- data/lib/ronin/network/mixins/ssl.rb +0 -148
- data/lib/ronin/network/mixins/tcp.rb +0 -368
- data/lib/ronin/network/mixins/telnet.rb +0 -208
- data/lib/ronin/network/mixins/udp.rb +0 -381
- data/lib/ronin/network/mixins/unix.rb +0 -279
- data/lib/ronin/network/mixins.rb +0 -29
- data/lib/ronin/network/network.rb +0 -45
- data/lib/ronin/network/pop3.rb +0 -124
- data/lib/ronin/network/proxy.rb +0 -578
- data/lib/ronin/network/smtp/email.rb +0 -174
- data/lib/ronin/network/smtp/smtp.rb +0 -230
- data/lib/ronin/network/smtp.rb +0 -22
- data/lib/ronin/network/ssl.rb +0 -186
- data/lib/ronin/network/tcp/proxy.rb +0 -417
- data/lib/ronin/network/tcp/tcp.rb +0 -443
- data/lib/ronin/network/tcp.rb +0 -21
- data/lib/ronin/network/telnet.rb +0 -264
- data/lib/ronin/network/udp/proxy.rb +0 -191
- data/lib/ronin/network/udp/udp.rb +0 -450
- data/lib/ronin/network/udp.rb +0 -21
- data/lib/ronin/network/unix.rb +0 -286
- data/lib/ronin/network.rb +0 -31
- data/lib/ronin/path.rb +0 -137
- data/lib/ronin/spec/ui/output.rb +0 -22
- data/lib/ronin/support/inflector.rb +0 -92
- data/lib/ronin/support/support.rb +0 -42
- data/lib/ronin/templates/erb.rb +0 -78
- data/lib/ronin/templates/template.rb +0 -169
- data/lib/ronin/templates.rb +0 -21
- data/lib/ronin/ui/output/helpers.rb +0 -296
- data/lib/ronin/ui/output/output.rb +0 -146
- data/lib/ronin/ui/output/terminal/color.rb +0 -124
- data/lib/ronin/ui/output/terminal/raw.rb +0 -103
- data/lib/ronin/ui/output/terminal.rb +0 -21
- data/lib/ronin/ui/output.rb +0 -21
- data/lib/ronin/ui/shell.rb +0 -286
- data/lib/ronin/wordlist.rb +0 -287
- data/spec/binary/hexdump/helpers/hexdumps/ascii.bin +0 -0
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_decimal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_hex_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_hex_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_octal_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_octal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_repeated.txt +0 -6
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_ints.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_quads.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_doubles.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_floats.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_ints.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_quads.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_named_chars.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_ints.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_quads.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_repeated.txt +0 -6
- data/spec/binary/hexdump/helpers/hexdumps/repeated.bin +0 -1
- data/spec/binary/hexdump/helpers/hexdumps.rb +0 -13
- data/spec/binary/hexdump/parser_spec.rb +0 -302
- data/spec/binary/struct_spec.rb +0 -496
- data/spec/binary/template_spec.rb +0 -414
- data/spec/extensions/enumerable_spec.rb +0 -24
- data/spec/extensions/file_spec.rb +0 -63
- data/spec/extensions/ip_addr_spec.rb +0 -203
- data/spec/extensions/kernel_spec.rb +0 -30
- data/spec/extensions/regexp_spec.rb +0 -482
- data/spec/extensions/resolv_spec.rb +0 -18
- data/spec/extensions/string_spec.rb +0 -179
- data/spec/formatting/binary/array_spec.rb +0 -26
- data/spec/formatting/binary/base64_spec.rb +0 -50
- data/spec/formatting/binary/float_spec.rb +0 -34
- data/spec/formatting/binary/integer_spec.rb +0 -166
- data/spec/formatting/binary/string_spec.rb +0 -197
- data/spec/formatting/digest/string_spec.rb +0 -82
- data/spec/formatting/html/integer_spec.rb +0 -66
- data/spec/formatting/html/string_spec.rb +0 -103
- data/spec/formatting/http/integer_spec.rb +0 -42
- data/spec/formatting/http/string_spec.rb +0 -76
- data/spec/formatting/sql/string_spec.rb +0 -75
- data/spec/formatting/text/array_spec.rb +0 -105
- data/spec/formatting/text/string_spec.rb +0 -162
- data/spec/fuzzing/extensions/string_spec.rb +0 -87
- data/spec/fuzzing/fuzzer_spec.rb +0 -109
- data/spec/fuzzing/fuzzing_spec.rb +0 -24
- data/spec/fuzzing/mutator_spec.rb +0 -112
- data/spec/fuzzing/repeater_spec.rb +0 -57
- data/spec/fuzzing/template_spec.rb +0 -54
- data/spec/mixin_spec.rb +0 -53
- data/spec/network/dns_spec.rb +0 -201
- data/spec/network/ftp_spec.rb +0 -81
- data/spec/network/http/http_spec.rb +0 -466
- data/spec/network/http/proxy_spec.rb +0 -148
- data/spec/network/network_spec.rb +0 -8
- data/spec/network/proxy_spec.rb +0 -121
- data/spec/network/shared/unix_server.rb +0 -31
- data/spec/network/smtp/email_spec.rb +0 -100
- data/spec/network/ssl_spec.rb +0 -70
- data/spec/network/tcp/proxy_spec.rb +0 -116
- data/spec/network/tcp/tcp_spec.rb +0 -273
- data/spec/network/telnet_spec.rb +0 -67
- data/spec/network/udp/udp_spec.rb +0 -271
- data/spec/network/unix_spec.rb +0 -183
- data/spec/path_spec.rb +0 -86
- data/spec/spec_helper.rb +0 -9
- data/spec/support/inflector_spec.rb +0 -22
- data/spec/support_spec.rb +0 -8
- data/spec/templates/classes/example_erb.rb +0 -11
- data/spec/templates/classes/example_template.rb +0 -35
- data/spec/templates/erb_spec.rb +0 -21
- data/spec/templates/helpers/data/includes/_relative.erb +0 -1
- data/spec/templates/helpers/data/templates/example.erb +0 -1
- data/spec/templates/helpers/data.rb +0 -9
- data/spec/templates/template_spec.rb +0 -54
- data/spec/ui/classes/test_shell.rb +0 -22
- data/spec/ui/output_spec.rb +0 -32
- data/spec/ui/shell_spec.rb +0 -83
- data/spec/wordlist_spec.rb +0 -151
|
@@ -0,0 +1,1109 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2006-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
4
|
+
#
|
|
5
|
+
# ronin-support is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published
|
|
7
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# ronin-support is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU Lesser General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
16
|
+
# along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
require 'ronin/support/network/dns/resolver'
|
|
20
|
+
|
|
21
|
+
require 'resolv'
|
|
22
|
+
|
|
23
|
+
module Ronin
|
|
24
|
+
module Support
|
|
25
|
+
module Network
|
|
26
|
+
#
|
|
27
|
+
# @since 0.4.0
|
|
28
|
+
#
|
|
29
|
+
module DNS
|
|
30
|
+
#
|
|
31
|
+
# The primary DNS nameserver(s) to query.
|
|
32
|
+
#
|
|
33
|
+
# @return [Array<String>]
|
|
34
|
+
# The addresses of the nameservers.
|
|
35
|
+
#
|
|
36
|
+
# @api public
|
|
37
|
+
#
|
|
38
|
+
def self.nameservers
|
|
39
|
+
@nameservers ||= Resolver.default_nameservers
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
#
|
|
43
|
+
# Sets the DNS nameserver to be queried.
|
|
44
|
+
#
|
|
45
|
+
# @param [Array<String>] new_nameservers
|
|
46
|
+
# The addresses of the new nameservers.
|
|
47
|
+
#
|
|
48
|
+
# @return [Array<String>]
|
|
49
|
+
# The addresses of the new nameservers.
|
|
50
|
+
#
|
|
51
|
+
# @api public
|
|
52
|
+
#
|
|
53
|
+
def self.nameservers=(new_nameservers)
|
|
54
|
+
@nameservers = new_nameservers.map(&:to_s)
|
|
55
|
+
@resolver = Resolver.new(nameservers: @nameservers)
|
|
56
|
+
return new_nameservers
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
#
|
|
60
|
+
# Sets the primary DNS nameserver to be queried.
|
|
61
|
+
#
|
|
62
|
+
# @param [String] new_nameserver
|
|
63
|
+
# The new primary nameserver address.
|
|
64
|
+
#
|
|
65
|
+
# @return [String]
|
|
66
|
+
# The address of the primary nameserver.
|
|
67
|
+
#
|
|
68
|
+
def self.nameserver=(new_nameserver)
|
|
69
|
+
self.nameservers = [new_nameserver]
|
|
70
|
+
return new_nameserver
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
#
|
|
74
|
+
# Creates a DNS Resolver for the given nameserver(s).
|
|
75
|
+
#
|
|
76
|
+
# @param [Array<String>, String, nil] nameservers
|
|
77
|
+
# Optional DNS nameserver(s) to query.
|
|
78
|
+
#
|
|
79
|
+
# @param [String, nil] nameserver
|
|
80
|
+
# Optional DNS nameserver to query.
|
|
81
|
+
#
|
|
82
|
+
# @return [Resolver]
|
|
83
|
+
# The DNS Resolver.
|
|
84
|
+
#
|
|
85
|
+
# @api public
|
|
86
|
+
#
|
|
87
|
+
# @since 0.6.0
|
|
88
|
+
#
|
|
89
|
+
def self.resolver(nameservers: nil, nameserver: nil)
|
|
90
|
+
if nameserver
|
|
91
|
+
Resolver.new(nameserver: nameserver.to_s)
|
|
92
|
+
elsif nameservers
|
|
93
|
+
Resolver.new(nameservers: nameservers.map(&:to_s))
|
|
94
|
+
else
|
|
95
|
+
@resolver ||= Resolver.new(nameservers: self.nameservers)
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
#
|
|
100
|
+
# Looks up the address of a hostname.
|
|
101
|
+
#
|
|
102
|
+
# @param [String] host
|
|
103
|
+
# The hostname to lookup.
|
|
104
|
+
#
|
|
105
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
106
|
+
# Additional keyword arguments.
|
|
107
|
+
#
|
|
108
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
109
|
+
# Optional DNS nameserver(s) to query.
|
|
110
|
+
#
|
|
111
|
+
# @option [String, nil] :nameserver
|
|
112
|
+
# Optional DNS nameserver to query.
|
|
113
|
+
#
|
|
114
|
+
# @return [String, nil]
|
|
115
|
+
# The address of the hostname.
|
|
116
|
+
#
|
|
117
|
+
# @api public
|
|
118
|
+
#
|
|
119
|
+
def self.get_address(host,**kwargs)
|
|
120
|
+
resolver(**kwargs).get_address(host.to_s)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
#
|
|
124
|
+
# Alias for {get_address}.
|
|
125
|
+
#
|
|
126
|
+
# @param [String] host
|
|
127
|
+
# The hostname to lookup.
|
|
128
|
+
#
|
|
129
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
130
|
+
# Additional keyword arguments for {get_address}.
|
|
131
|
+
#
|
|
132
|
+
# @return [String, nil]
|
|
133
|
+
# The address of the hostname.
|
|
134
|
+
#
|
|
135
|
+
# @see get_address
|
|
136
|
+
#
|
|
137
|
+
def self.lookup(host,**kwargs)
|
|
138
|
+
get_address(host,**kwargs)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
#
|
|
142
|
+
# Looks up all addresses of a hostname.
|
|
143
|
+
#
|
|
144
|
+
# @param [String] host
|
|
145
|
+
# The hostname to lookup.
|
|
146
|
+
#
|
|
147
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
148
|
+
# Additional keyword arguments.
|
|
149
|
+
#
|
|
150
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
151
|
+
# Optional DNS nameserver(s) to query.
|
|
152
|
+
#
|
|
153
|
+
# @option [String, nil] :nameserver
|
|
154
|
+
# Optional DNS nameserver to query.
|
|
155
|
+
#
|
|
156
|
+
# @return [Array<String>]
|
|
157
|
+
# The addresses of the hostname.
|
|
158
|
+
#
|
|
159
|
+
# @api public
|
|
160
|
+
#
|
|
161
|
+
def self.get_addresses(host,**kwargs)
|
|
162
|
+
resolver(**kwargs).get_addresses(host.to_s)
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
#
|
|
166
|
+
# Looks up the hostname of the address.
|
|
167
|
+
#
|
|
168
|
+
# @param [String] ip
|
|
169
|
+
# The IP address to lookup.
|
|
170
|
+
#
|
|
171
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
172
|
+
# Additional keyword arguments.
|
|
173
|
+
#
|
|
174
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
175
|
+
# Optional DNS nameserver(s) to query.
|
|
176
|
+
#
|
|
177
|
+
# @option [String, nil] :nameserver
|
|
178
|
+
# Optional DNS nameserver to query.
|
|
179
|
+
#
|
|
180
|
+
# @return [String, nil]
|
|
181
|
+
# The hostname of the address.
|
|
182
|
+
#
|
|
183
|
+
# @api public
|
|
184
|
+
#
|
|
185
|
+
def self.get_name(ip,**kwargs)
|
|
186
|
+
resolver(**kwargs).get_name(ip.to_s)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
#
|
|
190
|
+
# Alias for {get_name}.
|
|
191
|
+
#
|
|
192
|
+
# @param [String] ip
|
|
193
|
+
# The IP address to lookup.
|
|
194
|
+
#
|
|
195
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
196
|
+
# Additional keyword arguments for {get_name}.
|
|
197
|
+
#
|
|
198
|
+
# @return [String, nil]
|
|
199
|
+
# The hostname of the address.
|
|
200
|
+
#
|
|
201
|
+
# @see get_name
|
|
202
|
+
#
|
|
203
|
+
def self.reverse_lookup(ip,**kwargs)
|
|
204
|
+
get_name(ip,**kwargs)
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
#
|
|
208
|
+
# Looks up all hostnames associated with the address.
|
|
209
|
+
#
|
|
210
|
+
# @param [String] ip
|
|
211
|
+
# The IP address to lookup.
|
|
212
|
+
#
|
|
213
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
214
|
+
# Additional keyword arguments.
|
|
215
|
+
#
|
|
216
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
217
|
+
# Optional DNS nameserver(s) to query.
|
|
218
|
+
#
|
|
219
|
+
# @option [String, nil] :nameserver
|
|
220
|
+
# Optional DNS nameserver to query.
|
|
221
|
+
#
|
|
222
|
+
# @return [Array<String>]
|
|
223
|
+
# The hostnames of the address.
|
|
224
|
+
#
|
|
225
|
+
# @api public
|
|
226
|
+
#
|
|
227
|
+
def self.get_names(ip,**kwargs)
|
|
228
|
+
resolver(**kwargs).get_names(ip.to_s)
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
#
|
|
232
|
+
# Queries a single matching DNS record for the host name.
|
|
233
|
+
#
|
|
234
|
+
# @param [String] name
|
|
235
|
+
# The host name to query.
|
|
236
|
+
#
|
|
237
|
+
# @param [:a, :aaaa, :any, :cname, :hinfo, :loc, :minfo, :mx, :ns, :ptr, :soa, :srv, :txt, :wks] record_type
|
|
238
|
+
# The record type.
|
|
239
|
+
#
|
|
240
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
241
|
+
# Additional keyword arguments.
|
|
242
|
+
#
|
|
243
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
244
|
+
# Optional DNS nameserver(s) to query.
|
|
245
|
+
#
|
|
246
|
+
# @option [String, nil] :nameserver
|
|
247
|
+
# Optional DNS nameserver to query.
|
|
248
|
+
#
|
|
249
|
+
# @return [Resolv::DNS::Resource, nil]
|
|
250
|
+
# The matching DNS records or `nil` if no matching DNS records
|
|
251
|
+
# could be found.
|
|
252
|
+
#
|
|
253
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource
|
|
254
|
+
#
|
|
255
|
+
def self.get_record(name,record_type,**kwargs)
|
|
256
|
+
resolver(**kwargs).get_record(name.to_s,record_type)
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
#
|
|
260
|
+
# Queries all matching DNS records for the host name.
|
|
261
|
+
#
|
|
262
|
+
# @param [String] name
|
|
263
|
+
# The host name to query.
|
|
264
|
+
#
|
|
265
|
+
# @param [:a, :aaaa, :any, :cname, :hinfo, :loc, :minfo, :mx, :ns, :ptr, :soa, :srv, :txt, :wks] record_type
|
|
266
|
+
# The record type.
|
|
267
|
+
#
|
|
268
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
269
|
+
# Additional keyword arguments.
|
|
270
|
+
#
|
|
271
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
272
|
+
# Optional DNS nameserver(s) to query.
|
|
273
|
+
#
|
|
274
|
+
# @option [String, nil] :nameserver
|
|
275
|
+
# Optional DNS nameserver to query.
|
|
276
|
+
#
|
|
277
|
+
# @return [Array<Resolv::DNS::Resource>]
|
|
278
|
+
# All matching DNS records.
|
|
279
|
+
#
|
|
280
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource
|
|
281
|
+
#
|
|
282
|
+
def self.get_records(name,record_type,**kwargs)
|
|
283
|
+
resolver(**kwargs).get_records(name.to_s,record_type)
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
#
|
|
287
|
+
# Queries all records of the host name using the `ANY` DNS query.
|
|
288
|
+
#
|
|
289
|
+
# @param [String] name
|
|
290
|
+
# The host name to query.
|
|
291
|
+
#
|
|
292
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
293
|
+
# Additional keyword arguments.
|
|
294
|
+
#
|
|
295
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
296
|
+
# Optional DNS nameserver(s) to query.
|
|
297
|
+
#
|
|
298
|
+
# @option [String, nil] :nameserver
|
|
299
|
+
# Optional DNS nameserver to query.
|
|
300
|
+
#
|
|
301
|
+
# @return [Array<Resolv::DNS::Resource>]
|
|
302
|
+
# All of the DNS records belonging to the host name.
|
|
303
|
+
#
|
|
304
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/ANY
|
|
305
|
+
#
|
|
306
|
+
def self.get_any_records(name,**kwargs)
|
|
307
|
+
resolver(**kwargs).get_any_records(name.to_s)
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
#
|
|
311
|
+
# Queries the `CNAME` record for the host name.
|
|
312
|
+
#
|
|
313
|
+
# @param [String] name
|
|
314
|
+
# The host name to query.
|
|
315
|
+
#
|
|
316
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
317
|
+
# Additional keyword arguments.
|
|
318
|
+
#
|
|
319
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
320
|
+
# Optional DNS nameserver(s) to query.
|
|
321
|
+
#
|
|
322
|
+
# @option [String, nil] :nameserver
|
|
323
|
+
# Optional DNS nameserver to query.
|
|
324
|
+
#
|
|
325
|
+
# @return [Resolv::DNS::Resource::IN::CNAME, nil]
|
|
326
|
+
# The `CNAME` record or `nil` if the host name has no `CNAME`
|
|
327
|
+
# record.
|
|
328
|
+
#
|
|
329
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/CNAME
|
|
330
|
+
#
|
|
331
|
+
def self.get_cname_record(name,**kwargs)
|
|
332
|
+
resolver(**kwargs).get_cname_record(name.to_s)
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
#
|
|
336
|
+
# Queries the canonical name for the host name.
|
|
337
|
+
#
|
|
338
|
+
# @param [String] name
|
|
339
|
+
# The host name to query.
|
|
340
|
+
#
|
|
341
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
342
|
+
# Additional keyword arguments.
|
|
343
|
+
#
|
|
344
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
345
|
+
# Optional DNS nameserver(s) to query.
|
|
346
|
+
#
|
|
347
|
+
# @option [String, nil] :nameserver
|
|
348
|
+
# Optional DNS nameserver to query.
|
|
349
|
+
#
|
|
350
|
+
# @return [String, nil]
|
|
351
|
+
# The canonical name for the host or `nil` if the host has no
|
|
352
|
+
# `CNAME` record.
|
|
353
|
+
#
|
|
354
|
+
def self.get_cname(name,**kwargs)
|
|
355
|
+
resolver(**kwargs).get_cname(name.to_s)
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
#
|
|
359
|
+
# Queries the `HINFO` record for the host name.
|
|
360
|
+
#
|
|
361
|
+
# @param [String] name
|
|
362
|
+
# The host name to query.
|
|
363
|
+
#
|
|
364
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
365
|
+
# Additional keyword arguments.
|
|
366
|
+
#
|
|
367
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
368
|
+
# Optional DNS nameserver(s) to query.
|
|
369
|
+
#
|
|
370
|
+
# @option [String, nil] :nameserver
|
|
371
|
+
# Optional DNS nameserver to query.
|
|
372
|
+
#
|
|
373
|
+
# @return [Resolv::DNS::Resource::IN::HINFO, nil]
|
|
374
|
+
# The `HINFO` DNS record or `nil` if the host name has no `HINFO`
|
|
375
|
+
# record.
|
|
376
|
+
#
|
|
377
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/HINFO
|
|
378
|
+
#
|
|
379
|
+
def self.get_hinfo_record(name,**kwargs)
|
|
380
|
+
resolver(**kwargs).get_hinfo_record(name.to_s)
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
#
|
|
384
|
+
# Queries the first `A` record belonging to the host name.
|
|
385
|
+
#
|
|
386
|
+
# @param [String] name
|
|
387
|
+
# The host name to query.
|
|
388
|
+
#
|
|
389
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
390
|
+
# Additional keyword arguments.
|
|
391
|
+
#
|
|
392
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
393
|
+
# Optional DNS nameserver(s) to query.
|
|
394
|
+
#
|
|
395
|
+
# @option [String, nil] :nameserver
|
|
396
|
+
# Optional DNS nameserver to query.
|
|
397
|
+
#
|
|
398
|
+
# @return [Resolv::DNS::Resource::IN::A, nil]
|
|
399
|
+
# The first `A` DNS record or `nil` if the host name has no `A`
|
|
400
|
+
# records.
|
|
401
|
+
#
|
|
402
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/A
|
|
403
|
+
#
|
|
404
|
+
def self.get_a_record(name,**kwargs)
|
|
405
|
+
resolver(**kwargs).get_a_record(name.to_s)
|
|
406
|
+
end
|
|
407
|
+
|
|
408
|
+
#
|
|
409
|
+
# Queries the first IPv4 address belonging to the host name.
|
|
410
|
+
#
|
|
411
|
+
# @param [String] name
|
|
412
|
+
# The host name to query.
|
|
413
|
+
#
|
|
414
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
415
|
+
# Additional keyword arguments.
|
|
416
|
+
#
|
|
417
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
418
|
+
# Optional DNS nameserver(s) to query.
|
|
419
|
+
#
|
|
420
|
+
# @option [String, nil] :nameserver
|
|
421
|
+
# Optional DNS nameserver to query.
|
|
422
|
+
#
|
|
423
|
+
# @return [String, nil]
|
|
424
|
+
# The first IPv4 address belonging to the host name.
|
|
425
|
+
#
|
|
426
|
+
def self.get_a_address(name,**kwargs)
|
|
427
|
+
resolver(**kwargs).get_a_address(name.to_s)
|
|
428
|
+
end
|
|
429
|
+
|
|
430
|
+
#
|
|
431
|
+
# Queries the first IPv4 address belonging to the host name.
|
|
432
|
+
#
|
|
433
|
+
# @param [String] name
|
|
434
|
+
# The host name to query.
|
|
435
|
+
#
|
|
436
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
437
|
+
# Additional keyword arguments.
|
|
438
|
+
#
|
|
439
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
440
|
+
# Optional DNS nameserver(s) to query.
|
|
441
|
+
#
|
|
442
|
+
# @option [String, nil] :nameserver
|
|
443
|
+
# Optional DNS nameserver to query.
|
|
444
|
+
#
|
|
445
|
+
# @return [String, nil]
|
|
446
|
+
# The first IPv4 address belonging to the host name.
|
|
447
|
+
#
|
|
448
|
+
def self.get_ipv4_address(name,**kwargs)
|
|
449
|
+
resolver(**kwargs).get_ipv4_address(name.to_s)
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
#
|
|
453
|
+
# Queries all `A` records belonging to the host name.
|
|
454
|
+
#
|
|
455
|
+
# @param [String] name
|
|
456
|
+
# The host name to query.
|
|
457
|
+
#
|
|
458
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
459
|
+
# Additional keyword arguments.
|
|
460
|
+
#
|
|
461
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
462
|
+
# Optional DNS nameserver(s) to query.
|
|
463
|
+
#
|
|
464
|
+
# @option [String, nil] :nameserver
|
|
465
|
+
# Optional DNS nameserver to query.
|
|
466
|
+
#
|
|
467
|
+
# @return [Array<Resolv::DNS::Resource::IN::A>]
|
|
468
|
+
# All of the `A` DNS records belonging to the host name.
|
|
469
|
+
#
|
|
470
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/A
|
|
471
|
+
#
|
|
472
|
+
def self.get_a_records(name,**kwargs)
|
|
473
|
+
resolver(**kwargs).get_a_records(name.to_s)
|
|
474
|
+
end
|
|
475
|
+
|
|
476
|
+
#
|
|
477
|
+
# Queries all IPv4 addresses belonging to the host name.
|
|
478
|
+
#
|
|
479
|
+
# @param [String] name
|
|
480
|
+
# The host name to query.
|
|
481
|
+
#
|
|
482
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
483
|
+
# Additional keyword arguments.
|
|
484
|
+
#
|
|
485
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
486
|
+
# Optional DNS nameserver(s) to query.
|
|
487
|
+
#
|
|
488
|
+
# @option [String, nil] :nameserver
|
|
489
|
+
# Optional DNS nameserver to query.
|
|
490
|
+
#
|
|
491
|
+
# @return [Array<String>]
|
|
492
|
+
# All of the IPv4 addresses belonging to the host name.
|
|
493
|
+
#
|
|
494
|
+
def self.get_a_addresses(name,**kwargs)
|
|
495
|
+
resolver(**kwargs).get_a_addresses(name.to_s)
|
|
496
|
+
end
|
|
497
|
+
|
|
498
|
+
#
|
|
499
|
+
# Queries all IPv4 addresses belonging to the host name.
|
|
500
|
+
#
|
|
501
|
+
# @param [String] name
|
|
502
|
+
# The host name to query.
|
|
503
|
+
#
|
|
504
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
505
|
+
# Additional keyword arguments.
|
|
506
|
+
#
|
|
507
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
508
|
+
# Optional DNS nameserver(s) to query.
|
|
509
|
+
#
|
|
510
|
+
# @option [String, nil] :nameserver
|
|
511
|
+
# Optional DNS nameserver to query.
|
|
512
|
+
#
|
|
513
|
+
# @return [Array<String>]
|
|
514
|
+
# All of the IPv4 addresses belonging to the host name.
|
|
515
|
+
#
|
|
516
|
+
def self.get_ipv4_addresses(name,**kwargs)
|
|
517
|
+
resolver(**kwargs).get_ipv4_addresses(name.to_s)
|
|
518
|
+
end
|
|
519
|
+
|
|
520
|
+
#
|
|
521
|
+
# Queries the first `AAAA` DNS records belonging to the host name.
|
|
522
|
+
#
|
|
523
|
+
# @param [String] name
|
|
524
|
+
# The host name to query.
|
|
525
|
+
#
|
|
526
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
527
|
+
# Additional keyword arguments.
|
|
528
|
+
#
|
|
529
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
530
|
+
# Optional DNS nameserver(s) to query.
|
|
531
|
+
#
|
|
532
|
+
# @option [String, nil] :nameserver
|
|
533
|
+
# Optional DNS nameserver to query.
|
|
534
|
+
#
|
|
535
|
+
# @return [Resolv::DNS::Resource::IN::AAAA, nil]
|
|
536
|
+
# The first `AAAA` DNS record or `nil` if the host name has no
|
|
537
|
+
# `AAAA` records.
|
|
538
|
+
#
|
|
539
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/AAAA
|
|
540
|
+
#
|
|
541
|
+
def self.get_aaaa_record(name,**kwargs)
|
|
542
|
+
resolver(**kwargs).get_aaaa_record(name.to_s)
|
|
543
|
+
end
|
|
544
|
+
|
|
545
|
+
#
|
|
546
|
+
# Queries the first IPv6 address belonging to the host name.
|
|
547
|
+
#
|
|
548
|
+
# @param [String] name
|
|
549
|
+
# The host name to query.
|
|
550
|
+
#
|
|
551
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
552
|
+
# Additional keyword arguments.
|
|
553
|
+
#
|
|
554
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
555
|
+
# Optional DNS nameserver(s) to query.
|
|
556
|
+
#
|
|
557
|
+
# @option [String, nil] :nameserver
|
|
558
|
+
# Optional DNS nameserver to query.
|
|
559
|
+
#
|
|
560
|
+
# @return [String, nil]
|
|
561
|
+
# The first IPv6 address or `nil` if the host name has no IPv6
|
|
562
|
+
# addresses.
|
|
563
|
+
#
|
|
564
|
+
def self.get_aaaa_address(name,**kwargs)
|
|
565
|
+
resolver(**kwargs).get_aaaa_address(name.to_s)
|
|
566
|
+
end
|
|
567
|
+
|
|
568
|
+
#
|
|
569
|
+
# Queries the first IPv6 address belonging to the host name.
|
|
570
|
+
#
|
|
571
|
+
# @param [String] name
|
|
572
|
+
# The host name to query.
|
|
573
|
+
#
|
|
574
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
575
|
+
# Additional keyword arguments.
|
|
576
|
+
#
|
|
577
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
578
|
+
# Optional DNS nameserver(s) to query.
|
|
579
|
+
#
|
|
580
|
+
# @option [String, nil] :nameserver
|
|
581
|
+
# Optional DNS nameserver to query.
|
|
582
|
+
#
|
|
583
|
+
# @return [String, nil]
|
|
584
|
+
# The first IPv6 address or `nil` if the host name has no IPv6
|
|
585
|
+
# addresses.
|
|
586
|
+
#
|
|
587
|
+
def self.get_ipv6_address(name,**kwargs)
|
|
588
|
+
resolver(**kwargs).get_ipv6_address(name.to_s)
|
|
589
|
+
end
|
|
590
|
+
|
|
591
|
+
#
|
|
592
|
+
# Queries all `AAAA` DNS records belonging to the host name.
|
|
593
|
+
#
|
|
594
|
+
# @param [String] name
|
|
595
|
+
# The host name to query.
|
|
596
|
+
#
|
|
597
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
598
|
+
# Additional keyword arguments.
|
|
599
|
+
#
|
|
600
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
601
|
+
# Optional DNS nameserver(s) to query.
|
|
602
|
+
#
|
|
603
|
+
# @option [String, nil] :nameserver
|
|
604
|
+
# Optional DNS nameserver to query.
|
|
605
|
+
#
|
|
606
|
+
# @return [Array<Resolv::DNS::Resource::IN::AAAA>]
|
|
607
|
+
# All of the `AAAA` DNS records belonging to the host name.
|
|
608
|
+
#
|
|
609
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/AAAA
|
|
610
|
+
#
|
|
611
|
+
def self.get_aaaa_records(name,**kwargs)
|
|
612
|
+
resolver(**kwargs).get_aaaa_records(name.to_s)
|
|
613
|
+
end
|
|
614
|
+
|
|
615
|
+
#
|
|
616
|
+
# Queries all IPv6 addresses belonging to the host name.
|
|
617
|
+
#
|
|
618
|
+
# @param [String] name
|
|
619
|
+
# The host name to query.
|
|
620
|
+
#
|
|
621
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
622
|
+
# Additional keyword arguments.
|
|
623
|
+
#
|
|
624
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
625
|
+
# Optional DNS nameserver(s) to query.
|
|
626
|
+
#
|
|
627
|
+
# @option [String, nil] :nameserver
|
|
628
|
+
# Optional DNS nameserver to query.
|
|
629
|
+
#
|
|
630
|
+
# @return [Array<String>]
|
|
631
|
+
# All IPv6 addresses belonging to the host name.
|
|
632
|
+
#
|
|
633
|
+
def self.get_aaaa_addresses(name,**kwargs)
|
|
634
|
+
resolver(**kwargs).get_aaaa_addresses(name.to_s)
|
|
635
|
+
end
|
|
636
|
+
|
|
637
|
+
#
|
|
638
|
+
# Queries all IPv6 addresses belonging to the host name.
|
|
639
|
+
#
|
|
640
|
+
# @param [String] name
|
|
641
|
+
# The host name to query.
|
|
642
|
+
#
|
|
643
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
644
|
+
# Additional keyword arguments.
|
|
645
|
+
#
|
|
646
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
647
|
+
# Optional DNS nameserver(s) to query.
|
|
648
|
+
#
|
|
649
|
+
# @option [String, nil] :nameserver
|
|
650
|
+
# Optional DNS nameserver to query.
|
|
651
|
+
#
|
|
652
|
+
# @return [Array<String>]
|
|
653
|
+
# All IPv6 addresses belonging to the host name.
|
|
654
|
+
#
|
|
655
|
+
def self.get_ipv6_addresses(name,**kwargs)
|
|
656
|
+
resolver(**kwargs).get_ipv6_addresses(name.to_s)
|
|
657
|
+
end
|
|
658
|
+
|
|
659
|
+
#
|
|
660
|
+
# Queries the first IPv4 or IPv6 address belonging to the host name.
|
|
661
|
+
#
|
|
662
|
+
# @param [String] name
|
|
663
|
+
# The host name to query.
|
|
664
|
+
#
|
|
665
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
666
|
+
# Additional keyword arguments.
|
|
667
|
+
#
|
|
668
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
669
|
+
# Optional DNS nameserver(s) to query.
|
|
670
|
+
#
|
|
671
|
+
# @option [String, nil] :nameserver
|
|
672
|
+
# Optional DNS nameserver to query.
|
|
673
|
+
#
|
|
674
|
+
# @return [String, nil]
|
|
675
|
+
# The first IPv4 or IPv6 address or `nil` if the host name has no
|
|
676
|
+
# IPv4 or IPv6 addresses.
|
|
677
|
+
#
|
|
678
|
+
def self.get_ip_address(name,**kwargs)
|
|
679
|
+
resolver(**kwargs).get_ip_address(name.to_s)
|
|
680
|
+
end
|
|
681
|
+
|
|
682
|
+
#
|
|
683
|
+
# Queries all IP addresses belonging to the host name.
|
|
684
|
+
#
|
|
685
|
+
# @param [String] name
|
|
686
|
+
# The host name to query.
|
|
687
|
+
#
|
|
688
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
689
|
+
# Additional keyword arguments.
|
|
690
|
+
#
|
|
691
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
692
|
+
# Optional DNS nameserver(s) to query.
|
|
693
|
+
#
|
|
694
|
+
# @option [String, nil] :nameserver
|
|
695
|
+
# Optional DNS nameserver to query.
|
|
696
|
+
#
|
|
697
|
+
# @return [Array<String>]
|
|
698
|
+
# All IPv4 or IPv6 addresses belonging to the host name.
|
|
699
|
+
#
|
|
700
|
+
def self.get_ip_addresses(name,**kwargs)
|
|
701
|
+
resolver(**kwargs).get_ip_addresses(name.to_s)
|
|
702
|
+
end
|
|
703
|
+
|
|
704
|
+
#
|
|
705
|
+
# Queries all `SRV` DNS records belonging to the host name.
|
|
706
|
+
#
|
|
707
|
+
# @param [String] name
|
|
708
|
+
# The host name to query.
|
|
709
|
+
#
|
|
710
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
711
|
+
# Additional keyword arguments.
|
|
712
|
+
#
|
|
713
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
714
|
+
# Optional DNS nameserver(s) to query.
|
|
715
|
+
#
|
|
716
|
+
# @option [String, nil] :nameserver
|
|
717
|
+
# Optional DNS nameserver to query.
|
|
718
|
+
#
|
|
719
|
+
# @return [Array<Resolv::DNS::Resource::IN::SRV>]
|
|
720
|
+
# All `SRV` DNS records belonging to the host name.
|
|
721
|
+
#
|
|
722
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/SRV
|
|
723
|
+
#
|
|
724
|
+
def self.get_srv_records(name,**kwargs)
|
|
725
|
+
resolver(**kwargs).get_srv_records(name.to_s)
|
|
726
|
+
end
|
|
727
|
+
|
|
728
|
+
#
|
|
729
|
+
# Queries all `WKS` (Well-Known-Service) DNS records belonging to the
|
|
730
|
+
# host name.
|
|
731
|
+
#
|
|
732
|
+
# @param [String] name
|
|
733
|
+
# The host name to query.
|
|
734
|
+
#
|
|
735
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
736
|
+
# Additional keyword arguments.
|
|
737
|
+
#
|
|
738
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
739
|
+
# Optional DNS nameserver(s) to query.
|
|
740
|
+
#
|
|
741
|
+
# @option [String, nil] :nameserver
|
|
742
|
+
# Optional DNS nameserver to query.
|
|
743
|
+
#
|
|
744
|
+
# @return [Array<Resolv::DNS::Resource::IN::WKS>]
|
|
745
|
+
# All `WKS` DNS records belonging to the host name.
|
|
746
|
+
#
|
|
747
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/WKS
|
|
748
|
+
#
|
|
749
|
+
def self.get_wks_records(name,**kwargs)
|
|
750
|
+
resolver(**kwargs).get_wks_records(name.to_s)
|
|
751
|
+
end
|
|
752
|
+
|
|
753
|
+
#
|
|
754
|
+
# Queries the `LOC` (Location) DNS record of the host name.
|
|
755
|
+
#
|
|
756
|
+
# @param [String] name
|
|
757
|
+
# The host name to query.
|
|
758
|
+
#
|
|
759
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
760
|
+
# Additional keyword arguments.
|
|
761
|
+
#
|
|
762
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
763
|
+
# Optional DNS nameserver(s) to query.
|
|
764
|
+
#
|
|
765
|
+
# @option [String, nil] :nameserver
|
|
766
|
+
# Optional DNS nameserver to query.
|
|
767
|
+
#
|
|
768
|
+
# @return [Resolv::DNS::Resource::LOC, nil]
|
|
769
|
+
# The `LOC` DNS record of the host name or `nil` if the host name
|
|
770
|
+
# has no `LOC` record.
|
|
771
|
+
#
|
|
772
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/LOC
|
|
773
|
+
#
|
|
774
|
+
def self.get_loc_record(name,**kwargs)
|
|
775
|
+
resolver(**kwargs).get_loc_record(name.to_s)
|
|
776
|
+
end
|
|
777
|
+
|
|
778
|
+
#
|
|
779
|
+
# Queries the `MINFO` (Machine-Info) DNS record of the host name.
|
|
780
|
+
#
|
|
781
|
+
# @param [String] name
|
|
782
|
+
# The host name to query.
|
|
783
|
+
#
|
|
784
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
785
|
+
# Additional keyword arguments.
|
|
786
|
+
#
|
|
787
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
788
|
+
# Optional DNS nameserver(s) to query.
|
|
789
|
+
#
|
|
790
|
+
# @option [String, nil] :nameserver
|
|
791
|
+
# Optional DNS nameserver to query.
|
|
792
|
+
#
|
|
793
|
+
# @return [Resolv::DNS::Resource::MINFO, nil]
|
|
794
|
+
# The `MINFO` DNS record of the host name or `nil` if the host name
|
|
795
|
+
# has no `MINFO` record.
|
|
796
|
+
#
|
|
797
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/MINFO
|
|
798
|
+
#
|
|
799
|
+
def self.get_minfo_record(name,**kwargs)
|
|
800
|
+
resolver(**kwargs).get_minfo_record(name.to_s)
|
|
801
|
+
end
|
|
802
|
+
|
|
803
|
+
#
|
|
804
|
+
# Queries all `MX` DNS records belonging to the host name.
|
|
805
|
+
#
|
|
806
|
+
# @param [String] name
|
|
807
|
+
# The host name to query.
|
|
808
|
+
#
|
|
809
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
810
|
+
# Additional keyword arguments.
|
|
811
|
+
#
|
|
812
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
813
|
+
# Optional DNS nameserver(s) to query.
|
|
814
|
+
#
|
|
815
|
+
# @option [String, nil] :nameserver
|
|
816
|
+
# Optional DNS nameserver to query.
|
|
817
|
+
#
|
|
818
|
+
# @return [Array<Resolv::DNS::Resource::MX>]
|
|
819
|
+
# All `MX` DNS records belonging to the host name.
|
|
820
|
+
#
|
|
821
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/MX
|
|
822
|
+
#
|
|
823
|
+
def self.get_mx_records(name,**kwargs)
|
|
824
|
+
resolver(**kwargs).get_mx_records(name.to_s)
|
|
825
|
+
end
|
|
826
|
+
|
|
827
|
+
#
|
|
828
|
+
# Queries the mailservers for the host name.
|
|
829
|
+
#
|
|
830
|
+
# @param [String] name
|
|
831
|
+
# The host name to query.
|
|
832
|
+
#
|
|
833
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
834
|
+
# Additional keyword arguments.
|
|
835
|
+
#
|
|
836
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
837
|
+
# Optional DNS nameserver(s) to query.
|
|
838
|
+
#
|
|
839
|
+
# @option [String, nil] :nameserver
|
|
840
|
+
# Optional DNS nameserver to query.
|
|
841
|
+
#
|
|
842
|
+
# @return [Array<String>]
|
|
843
|
+
# The host names of the mailservers serving the given host name.
|
|
844
|
+
#
|
|
845
|
+
def self.get_mailservers(name,**kwargs)
|
|
846
|
+
resolver(**kwargs).get_mailservers(name.to_s)
|
|
847
|
+
end
|
|
848
|
+
|
|
849
|
+
#
|
|
850
|
+
# Queries all `NS` DNS records belonging to the host name.
|
|
851
|
+
#
|
|
852
|
+
# @param [String] name
|
|
853
|
+
# The host name to query.
|
|
854
|
+
#
|
|
855
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
856
|
+
# Additional keyword arguments.
|
|
857
|
+
#
|
|
858
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
859
|
+
# Optional DNS nameserver(s) to query.
|
|
860
|
+
#
|
|
861
|
+
# @option [String, nil] :nameserver
|
|
862
|
+
# Optional DNS nameserver to query.
|
|
863
|
+
#
|
|
864
|
+
# @return [Array<Resolv::DNS::Resource::NS>]
|
|
865
|
+
# All `NS` DNS records belonging to the host name.
|
|
866
|
+
#
|
|
867
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/NS
|
|
868
|
+
#
|
|
869
|
+
def self.get_ns_records(name,**kwargs)
|
|
870
|
+
resolver(**kwargs).get_ns_records(name.to_s)
|
|
871
|
+
end
|
|
872
|
+
|
|
873
|
+
#
|
|
874
|
+
# Queries the nameservers for the host name.
|
|
875
|
+
#
|
|
876
|
+
# @param [String] name
|
|
877
|
+
# The host name to query.
|
|
878
|
+
#
|
|
879
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
880
|
+
# Additional keyword arguments.
|
|
881
|
+
#
|
|
882
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
883
|
+
# Optional DNS nameserver(s) to query.
|
|
884
|
+
#
|
|
885
|
+
# @option [String, nil] :nameserver
|
|
886
|
+
# Optional DNS nameserver to query.
|
|
887
|
+
#
|
|
888
|
+
# @return [Array<String>]
|
|
889
|
+
# The host names of the nameservers serving the given host name.
|
|
890
|
+
#
|
|
891
|
+
def self.get_nameservers(name,**kwargs)
|
|
892
|
+
resolver(**kwargs).get_nameservers(name.to_s)
|
|
893
|
+
end
|
|
894
|
+
|
|
895
|
+
#
|
|
896
|
+
# Queries the first `PTR` DNS record for the IP address.
|
|
897
|
+
#
|
|
898
|
+
# @param [String] ip
|
|
899
|
+
# The IP address to query.
|
|
900
|
+
#
|
|
901
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
902
|
+
# Additional keyword arguments.
|
|
903
|
+
#
|
|
904
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
905
|
+
# Optional DNS nameserver(s) to query.
|
|
906
|
+
#
|
|
907
|
+
# @option [String, nil] :nameserver
|
|
908
|
+
# Optional DNS nameserver to query.
|
|
909
|
+
#
|
|
910
|
+
# @return [Resolv::DNS::Resource::PTR, nil]
|
|
911
|
+
# The first `PTR` DNS record of the host name or `nil` if the host
|
|
912
|
+
# name has no `PTR` records.
|
|
913
|
+
#
|
|
914
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/PTR
|
|
915
|
+
#
|
|
916
|
+
def self.get_ptr_record(ip,**kwargs)
|
|
917
|
+
resolver(**kwargs).get_ptr_record(ip.to_s)
|
|
918
|
+
end
|
|
919
|
+
|
|
920
|
+
#
|
|
921
|
+
# Queries the `PTR` host name for the IP address.
|
|
922
|
+
#
|
|
923
|
+
# @param [String] ip
|
|
924
|
+
# The IP address to query.
|
|
925
|
+
#
|
|
926
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
927
|
+
# Additional keyword arguments.
|
|
928
|
+
#
|
|
929
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
930
|
+
# Optional DNS nameserver(s) to query.
|
|
931
|
+
#
|
|
932
|
+
# @option [String, nil] :nameserver
|
|
933
|
+
# Optional DNS nameserver to query.
|
|
934
|
+
#
|
|
935
|
+
# @return [String, nil]
|
|
936
|
+
# The host name that points to the given IP.
|
|
937
|
+
#
|
|
938
|
+
def self.get_ptr_name(ip,**kwargs)
|
|
939
|
+
resolver(**kwargs).get_ptr_name(ip.to_s)
|
|
940
|
+
end
|
|
941
|
+
|
|
942
|
+
#
|
|
943
|
+
# Queries all `PTR` DNS records for the IP address.
|
|
944
|
+
#
|
|
945
|
+
# @param [String] ip
|
|
946
|
+
# The IP address to query.
|
|
947
|
+
#
|
|
948
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
949
|
+
# Additional keyword arguments.
|
|
950
|
+
#
|
|
951
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
952
|
+
# Optional DNS nameserver(s) to query.
|
|
953
|
+
#
|
|
954
|
+
# @option [String, nil] :nameserver
|
|
955
|
+
# Optional DNS nameserver to query.
|
|
956
|
+
#
|
|
957
|
+
# @return [Array<Resolv::DNS::Resource::PTR>]
|
|
958
|
+
# All `PTR` DNS records for the given IP.
|
|
959
|
+
#
|
|
960
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/PTR
|
|
961
|
+
#
|
|
962
|
+
def self.get_ptr_records(ip,**kwargs)
|
|
963
|
+
resolver(**kwargs).get_ptr_records(ip.to_s)
|
|
964
|
+
end
|
|
965
|
+
|
|
966
|
+
#
|
|
967
|
+
# Queries all `PTR` names for the IP address.
|
|
968
|
+
#
|
|
969
|
+
# @param [String] ip
|
|
970
|
+
# The IP address to query.
|
|
971
|
+
#
|
|
972
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
973
|
+
# Additional keyword arguments.
|
|
974
|
+
#
|
|
975
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
976
|
+
# Optional DNS nameserver(s) to query.
|
|
977
|
+
#
|
|
978
|
+
# @option [String, nil] :nameserver
|
|
979
|
+
# Optional DNS nameserver to query.
|
|
980
|
+
#
|
|
981
|
+
# @return [Array<String>]
|
|
982
|
+
# The `PTR` names for the given IP.
|
|
983
|
+
#
|
|
984
|
+
def self.get_ptr_names(ip,**kwargs)
|
|
985
|
+
resolver(**kwargs).get_ptr_names(ip.to_s)
|
|
986
|
+
end
|
|
987
|
+
|
|
988
|
+
#
|
|
989
|
+
# Queries the first `SOA` DNS record belonging to the host name.
|
|
990
|
+
#
|
|
991
|
+
# @param [String] name
|
|
992
|
+
# The host name to query.
|
|
993
|
+
#
|
|
994
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
995
|
+
# Additional keyword arguments.
|
|
996
|
+
#
|
|
997
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
998
|
+
# Optional DNS nameserver(s) to query.
|
|
999
|
+
#
|
|
1000
|
+
# @option [String, nil] :nameserver
|
|
1001
|
+
# Optional DNS nameserver to query.
|
|
1002
|
+
#
|
|
1003
|
+
# @return [Resolv::DNS::Resource::SOA, nil]
|
|
1004
|
+
# The first `SOA` DNS record for the host name or `nil` if the host
|
|
1005
|
+
# name has no `SOA` records.
|
|
1006
|
+
#
|
|
1007
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/SOA
|
|
1008
|
+
#
|
|
1009
|
+
def self.get_soa_record(name,**kwargs)
|
|
1010
|
+
resolver(**kwargs).get_soa_record(name.to_s)
|
|
1011
|
+
end
|
|
1012
|
+
|
|
1013
|
+
#
|
|
1014
|
+
# Queiries the first `TXT` DNS record belonging to the host name.
|
|
1015
|
+
#
|
|
1016
|
+
# @param [String] name
|
|
1017
|
+
# The host name to query.
|
|
1018
|
+
#
|
|
1019
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
1020
|
+
# Additional keyword arguments.
|
|
1021
|
+
#
|
|
1022
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
1023
|
+
# Optional DNS nameserver(s) to query.
|
|
1024
|
+
#
|
|
1025
|
+
# @option [String, nil] :nameserver
|
|
1026
|
+
# Optional DNS nameserver to query.
|
|
1027
|
+
#
|
|
1028
|
+
# @return [Resolv::DNS::Resource::TXT, nil]
|
|
1029
|
+
# The first `TXT` DNS record for the host name or `nil` if the host
|
|
1030
|
+
# name has no `TXT` records.
|
|
1031
|
+
#
|
|
1032
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/TXT
|
|
1033
|
+
#
|
|
1034
|
+
def self.get_txt_record(name,**kwargs)
|
|
1035
|
+
resolver(**kwargs).get_txt_record(name.to_s)
|
|
1036
|
+
end
|
|
1037
|
+
|
|
1038
|
+
#
|
|
1039
|
+
# Queries the first `TXT` string belonging to the host name.
|
|
1040
|
+
#
|
|
1041
|
+
# @param [String] name
|
|
1042
|
+
# The host name to query.
|
|
1043
|
+
#
|
|
1044
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
1045
|
+
# Additional keyword arguments.
|
|
1046
|
+
#
|
|
1047
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
1048
|
+
# Optional DNS nameserver(s) to query.
|
|
1049
|
+
#
|
|
1050
|
+
# @option [String, nil] :nameserver
|
|
1051
|
+
# Optional DNS nameserver to query.
|
|
1052
|
+
#
|
|
1053
|
+
# @return [String, nil]
|
|
1054
|
+
# The first `TXT` string belonging to the host name or `nil` if the
|
|
1055
|
+
# host name has no `TXT` records.
|
|
1056
|
+
#
|
|
1057
|
+
def self.get_txt_string(name,**kwargs)
|
|
1058
|
+
resolver(**kwargs).get_txt_string(name.to_s)
|
|
1059
|
+
end
|
|
1060
|
+
|
|
1061
|
+
#
|
|
1062
|
+
# Queries all `TXT` DNS records belonging to the host name.
|
|
1063
|
+
#
|
|
1064
|
+
# @param [String] name
|
|
1065
|
+
# The host name to query.
|
|
1066
|
+
#
|
|
1067
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
1068
|
+
# Additional keyword arguments.
|
|
1069
|
+
#
|
|
1070
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
1071
|
+
# Optional DNS nameserver(s) to query.
|
|
1072
|
+
#
|
|
1073
|
+
# @option [String, nil] :nameserver
|
|
1074
|
+
# Optional DNS nameserver to query.
|
|
1075
|
+
#
|
|
1076
|
+
# @return [Array<Resolv::DNS::Resource::TXT>]
|
|
1077
|
+
# All of the `TXT` DNS records belonging to the host name.
|
|
1078
|
+
#
|
|
1079
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/TXT
|
|
1080
|
+
#
|
|
1081
|
+
def self.get_txt_records(name,**kwargs)
|
|
1082
|
+
resolver(**kwargs).get_txt_records(name.to_s)
|
|
1083
|
+
end
|
|
1084
|
+
|
|
1085
|
+
#
|
|
1086
|
+
# Queries all of the `TXT` string values of the host name.
|
|
1087
|
+
#
|
|
1088
|
+
# @param [String] name
|
|
1089
|
+
# The host name to query.
|
|
1090
|
+
#
|
|
1091
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
1092
|
+
# Additional keyword arguments.
|
|
1093
|
+
#
|
|
1094
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
1095
|
+
# Optional DNS nameserver(s) to query.
|
|
1096
|
+
#
|
|
1097
|
+
# @option [String, nil] :nameserver
|
|
1098
|
+
# Optional DNS nameserver to query.
|
|
1099
|
+
#
|
|
1100
|
+
# @return [Array<String>]
|
|
1101
|
+
# All `TXT` string values belonging of the host name.
|
|
1102
|
+
#
|
|
1103
|
+
def self.get_txt_strings(name,**kwargs)
|
|
1104
|
+
resolver(**kwargs).get_txt_strings(name.to_s)
|
|
1105
|
+
end
|
|
1106
|
+
end
|
|
1107
|
+
end
|
|
1108
|
+
end
|
|
1109
|
+
end
|