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,941 @@
|
|
|
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'
|
|
20
|
+
|
|
21
|
+
module Ronin
|
|
22
|
+
module Support
|
|
23
|
+
module Network
|
|
24
|
+
module DNS
|
|
25
|
+
#
|
|
26
|
+
# Provides helper methods for performing DNS queries.
|
|
27
|
+
#
|
|
28
|
+
module Mixin
|
|
29
|
+
#
|
|
30
|
+
# Sets the DNS nameservers to query.
|
|
31
|
+
#
|
|
32
|
+
# @param [Array<String>] new_nameservers
|
|
33
|
+
# The new DNS nameserver addresses to query.
|
|
34
|
+
#
|
|
35
|
+
# @return [Array<String>]
|
|
36
|
+
# The new DNS nameserver addresses to query.
|
|
37
|
+
#
|
|
38
|
+
def dns_nameservers=(new_nameservers)
|
|
39
|
+
@dns_nameservers = new_nameservers.map(&:to_s)
|
|
40
|
+
@dns_resolver = Network::DNS.resolver(
|
|
41
|
+
nameservers: @dns_nameservers
|
|
42
|
+
)
|
|
43
|
+
return new_nameservers
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
#
|
|
47
|
+
# The default DNS nameserver(s) to query.
|
|
48
|
+
#
|
|
49
|
+
# @return [Array<String>]
|
|
50
|
+
# The addresses of the DNS nameserver(s) to query.
|
|
51
|
+
#
|
|
52
|
+
def dns_nameservers
|
|
53
|
+
@dns_nameservers ||= Network::DNS.nameservers
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
#
|
|
57
|
+
# Sets the primary DNS nameserver to query.
|
|
58
|
+
#
|
|
59
|
+
# @param [String] new_nameserver
|
|
60
|
+
# The address of the new primary DNS nameserver to query.
|
|
61
|
+
#
|
|
62
|
+
# @return [String]
|
|
63
|
+
# The address of the new primary DNS nameserver to query.
|
|
64
|
+
#
|
|
65
|
+
def dns_nameserver=(new_nameserver)
|
|
66
|
+
self.dns_nameservers = [new_nameserver]
|
|
67
|
+
return new_nameserver
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
#
|
|
71
|
+
# Creates a DNS Resolver for the nameserver.
|
|
72
|
+
#
|
|
73
|
+
# @param [Array<String>, String, nil] nameservers
|
|
74
|
+
# Optional DNS nameserver(s) to query.
|
|
75
|
+
#
|
|
76
|
+
# @param [String, nil] nameserver
|
|
77
|
+
# Optional DNS nameserver to query.
|
|
78
|
+
#
|
|
79
|
+
# @return [Resolv, Resolv::DNS]
|
|
80
|
+
# The DNS Resolver.
|
|
81
|
+
#
|
|
82
|
+
# @api public
|
|
83
|
+
#
|
|
84
|
+
def dns_resolver(nameservers: nil, nameserver: nil)
|
|
85
|
+
if nameserver
|
|
86
|
+
Network::DNS.resolver(nameserver: nameserver)
|
|
87
|
+
elsif nameservers
|
|
88
|
+
Network::DNS.resolver(nameservers: nameservers)
|
|
89
|
+
else
|
|
90
|
+
@dns_resolver ||= Network::DNS.resolver(
|
|
91
|
+
nameservers: dns_nameservers
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
#
|
|
97
|
+
# Looks up the address of a hostname.
|
|
98
|
+
#
|
|
99
|
+
# @param [String] host
|
|
100
|
+
# The hostname to lookup.
|
|
101
|
+
#
|
|
102
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
103
|
+
# Additional keyword arguments.
|
|
104
|
+
#
|
|
105
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
106
|
+
# Optional DNS nameserver(s) to query.
|
|
107
|
+
#
|
|
108
|
+
# @option [String, nil] :nameserver
|
|
109
|
+
# Optional DNS nameserver to query.
|
|
110
|
+
#
|
|
111
|
+
# @return [String, nil]
|
|
112
|
+
# The address of the hostname.
|
|
113
|
+
#
|
|
114
|
+
# @api public
|
|
115
|
+
#
|
|
116
|
+
def dns_get_address(host,**kwargs)
|
|
117
|
+
dns_resolver(**kwargs).get_address(host.to_s)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
alias dns_lookup dns_get_address
|
|
121
|
+
|
|
122
|
+
#
|
|
123
|
+
# Looks up all addresses of a hostname.
|
|
124
|
+
#
|
|
125
|
+
# @param [String] host
|
|
126
|
+
# The hostname to lookup.
|
|
127
|
+
#
|
|
128
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
129
|
+
# Additional keyword arguments.
|
|
130
|
+
#
|
|
131
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
132
|
+
# Optional DNS nameserver(s) to query.
|
|
133
|
+
#
|
|
134
|
+
# @option [String, nil] :nameserver
|
|
135
|
+
# Optional DNS nameserver to query.
|
|
136
|
+
#
|
|
137
|
+
# @return [Array<String>]
|
|
138
|
+
# The addresses of the hostname.
|
|
139
|
+
#
|
|
140
|
+
# @api public
|
|
141
|
+
#
|
|
142
|
+
def dns_get_addresses(host,**kwargs)
|
|
143
|
+
dns_resolver(**kwargs).get_addresses(host.to_s)
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
#
|
|
147
|
+
# Looks up the hostname of the address.
|
|
148
|
+
#
|
|
149
|
+
# @param [String] ip
|
|
150
|
+
# The IP address to lookup.
|
|
151
|
+
#
|
|
152
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
153
|
+
# Additional keyword arguments.
|
|
154
|
+
#
|
|
155
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
156
|
+
# Optional DNS nameserver(s) to query.
|
|
157
|
+
#
|
|
158
|
+
# @option [String, nil] :nameserver
|
|
159
|
+
# Optional DNS nameserver to query.
|
|
160
|
+
#
|
|
161
|
+
# @return [String, nil]
|
|
162
|
+
# The hostname of the address.
|
|
163
|
+
#
|
|
164
|
+
# @api public
|
|
165
|
+
#
|
|
166
|
+
def dns_get_name(ip,**kwargs)
|
|
167
|
+
dns_resolver(**kwargs).get_name(ip.to_s)
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
alias dns_reverse_lookup dns_get_name
|
|
171
|
+
|
|
172
|
+
#
|
|
173
|
+
# Looks up all hostnames associated with the address.
|
|
174
|
+
#
|
|
175
|
+
# @param [String] ip
|
|
176
|
+
# The IP address to lookup.
|
|
177
|
+
#
|
|
178
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
179
|
+
# Additional keyword arguments.
|
|
180
|
+
#
|
|
181
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
182
|
+
# Optional DNS nameserver(s) to query.
|
|
183
|
+
#
|
|
184
|
+
# @option [String, nil] :nameserver
|
|
185
|
+
# Optional DNS nameserver to query.
|
|
186
|
+
#
|
|
187
|
+
# @return [Array<String>]
|
|
188
|
+
# The hostnames of the address.
|
|
189
|
+
#
|
|
190
|
+
# @api public
|
|
191
|
+
#
|
|
192
|
+
def dns_get_names(ip,**kwargs)
|
|
193
|
+
dns_resolver(**kwargs).get_names(ip.to_s)
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
#
|
|
197
|
+
# Queries a single matching DNS record for the host name.
|
|
198
|
+
#
|
|
199
|
+
# @param [String] name
|
|
200
|
+
# The host name to query.
|
|
201
|
+
#
|
|
202
|
+
# @param [:a, :aaaa, :any, :cname, :hinfo, :loc, :minfo, :mx, :ns, :ptr, :soa, :srv, :txt, :wks] record_type
|
|
203
|
+
# The record type.
|
|
204
|
+
#
|
|
205
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
206
|
+
# Additional keyword arguments.
|
|
207
|
+
#
|
|
208
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
209
|
+
# Optional DNS nameserver(s) to query.
|
|
210
|
+
#
|
|
211
|
+
# @option [String, nil] :nameserver
|
|
212
|
+
# Optional DNS nameserver to query.
|
|
213
|
+
#
|
|
214
|
+
# @return [Resolv::DNS::Resource, nil]
|
|
215
|
+
# The matching DNS records or `nil` if no matching DNS records
|
|
216
|
+
# could be found.
|
|
217
|
+
#
|
|
218
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource
|
|
219
|
+
#
|
|
220
|
+
def dns_get_record(name,record_type,**kwargs)
|
|
221
|
+
dns_resolver(**kwargs).get_record(name.to_s,record_type)
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
#
|
|
225
|
+
# Queries all matching DNS records for the host name.
|
|
226
|
+
#
|
|
227
|
+
# @param [String] name
|
|
228
|
+
# The host name to query.
|
|
229
|
+
#
|
|
230
|
+
# @param [:a, :aaaa, :any, :cname, :hinfo, :loc, :minfo, :mx, :ns, :ptr, :soa, :srv, :txt, :wks] record_type
|
|
231
|
+
# The record type.
|
|
232
|
+
#
|
|
233
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
234
|
+
# Additional keyword arguments.
|
|
235
|
+
#
|
|
236
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
237
|
+
# Optional DNS nameserver(s) to query.
|
|
238
|
+
#
|
|
239
|
+
# @option [String, nil] :nameserver
|
|
240
|
+
# Optional DNS nameserver to query.
|
|
241
|
+
#
|
|
242
|
+
# @return [Array<Resolv::DNS::Resource>]
|
|
243
|
+
# All matching DNS records.
|
|
244
|
+
#
|
|
245
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource
|
|
246
|
+
#
|
|
247
|
+
def dns_get_records(name,record_type,**kwargs)
|
|
248
|
+
dns_resolver(**kwargs).get_records(name.to_s,record_type)
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
#
|
|
252
|
+
# Queries all records of the host name using the `ANY` DNS query.
|
|
253
|
+
#
|
|
254
|
+
# @param [String] name
|
|
255
|
+
# The host name to query.
|
|
256
|
+
#
|
|
257
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
258
|
+
# Additional keyword arguments.
|
|
259
|
+
#
|
|
260
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
261
|
+
# Optional DNS nameserver(s) to query.
|
|
262
|
+
#
|
|
263
|
+
# @option [String, nil] :nameserver
|
|
264
|
+
# Optional DNS nameserver to query.
|
|
265
|
+
#
|
|
266
|
+
# @return [Array<Resolv::DNS::Resource>]
|
|
267
|
+
# All of the DNS records belonging to the host name.
|
|
268
|
+
#
|
|
269
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/ANY
|
|
270
|
+
#
|
|
271
|
+
def dns_get_any_records(name,**kwargs)
|
|
272
|
+
dns_resolver(**kwargs).get_any_records(name.to_s)
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
#
|
|
276
|
+
# Queries the `CNAME` record for the host name.
|
|
277
|
+
#
|
|
278
|
+
# @param [String] name
|
|
279
|
+
# The host name to query.
|
|
280
|
+
#
|
|
281
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
282
|
+
# Additional keyword arguments.
|
|
283
|
+
#
|
|
284
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
285
|
+
# Optional DNS nameserver(s) to query.
|
|
286
|
+
#
|
|
287
|
+
# @option [String, nil] :nameserver
|
|
288
|
+
# Optional DNS nameserver to query.
|
|
289
|
+
#
|
|
290
|
+
# @return [Resolv::DNS::Resource::IN::CNAME, nil]
|
|
291
|
+
# The `CNAME` record or `nil` if the host name has no `CNAME`
|
|
292
|
+
# record.
|
|
293
|
+
#
|
|
294
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/CNAME
|
|
295
|
+
#
|
|
296
|
+
def dns_get_cname_record(name,**kwargs)
|
|
297
|
+
dns_resolver(**kwargs).get_cname_record(name.to_s)
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
#
|
|
301
|
+
# Queries the canonical name for the host name.
|
|
302
|
+
#
|
|
303
|
+
# @param [String] name
|
|
304
|
+
# The host name to query.
|
|
305
|
+
#
|
|
306
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
307
|
+
# Additional keyword arguments.
|
|
308
|
+
#
|
|
309
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
310
|
+
# Optional DNS nameserver(s) to query.
|
|
311
|
+
#
|
|
312
|
+
# @option [String, nil] :nameserver
|
|
313
|
+
# Optional DNS nameserver to query.
|
|
314
|
+
#
|
|
315
|
+
# @return [String, nil]
|
|
316
|
+
# The canonical name for the host or `nil` if the host has no
|
|
317
|
+
# `CNAME` record.
|
|
318
|
+
#
|
|
319
|
+
def dns_get_cname(name,**kwargs)
|
|
320
|
+
dns_resolver(**kwargs).get_cname(name.to_s)
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
#
|
|
324
|
+
# Queries the `HINFO` record for the host name.
|
|
325
|
+
#
|
|
326
|
+
# @param [String] name
|
|
327
|
+
# The host name to query.
|
|
328
|
+
#
|
|
329
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
330
|
+
# Additional keyword arguments.
|
|
331
|
+
#
|
|
332
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
333
|
+
# Optional DNS nameserver(s) to query.
|
|
334
|
+
#
|
|
335
|
+
# @option [String, nil] :nameserver
|
|
336
|
+
# Optional DNS nameserver to query.
|
|
337
|
+
#
|
|
338
|
+
# @return [Resolv::DNS::Resource::IN::HINFO, nil]
|
|
339
|
+
# The `HINFO` DNS record or `nil` if the host name has no `HINFO`
|
|
340
|
+
# record.
|
|
341
|
+
#
|
|
342
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/HINFO
|
|
343
|
+
#
|
|
344
|
+
def dns_get_hinfo_record(name,**kwargs)
|
|
345
|
+
dns_resolver(**kwargs).get_hinfo_record(name.to_s)
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
#
|
|
349
|
+
# Queries the first `A` record belonging to the host name.
|
|
350
|
+
#
|
|
351
|
+
# @param [String] name
|
|
352
|
+
# The host name to query.
|
|
353
|
+
#
|
|
354
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
355
|
+
# Additional keyword arguments.
|
|
356
|
+
#
|
|
357
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
358
|
+
# Optional DNS nameserver(s) to query.
|
|
359
|
+
#
|
|
360
|
+
# @option [String, nil] :nameserver
|
|
361
|
+
# Optional DNS nameserver to query.
|
|
362
|
+
#
|
|
363
|
+
# @return [Resolv::DNS::Resource::IN::A, nil]
|
|
364
|
+
# The first `A` DNS record or `nil` if the host name has no `A`
|
|
365
|
+
# records.
|
|
366
|
+
#
|
|
367
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/A
|
|
368
|
+
#
|
|
369
|
+
def dns_get_a_record(name,**kwargs)
|
|
370
|
+
dns_resolver(**kwargs).get_a_record(name.to_s)
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
#
|
|
374
|
+
# Queries the first IPv4 address belonging to the host name.
|
|
375
|
+
#
|
|
376
|
+
# @param [String] name
|
|
377
|
+
# The host name to query.
|
|
378
|
+
#
|
|
379
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
380
|
+
# Additional keyword arguments.
|
|
381
|
+
#
|
|
382
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
383
|
+
# Optional DNS nameserver(s) to query.
|
|
384
|
+
#
|
|
385
|
+
# @option [String, nil] :nameserver
|
|
386
|
+
# Optional DNS nameserver to query.
|
|
387
|
+
#
|
|
388
|
+
# @return [String, nil]
|
|
389
|
+
# The first IPv4 address belonging to the host name.
|
|
390
|
+
#
|
|
391
|
+
def dns_get_a_address(name,**kwargs)
|
|
392
|
+
dns_resolver(**kwargs).get_a_address(name.to_s)
|
|
393
|
+
end
|
|
394
|
+
|
|
395
|
+
#
|
|
396
|
+
# Queries all `A` records belonging to the host name.
|
|
397
|
+
#
|
|
398
|
+
# @param [String] name
|
|
399
|
+
# The host name to query.
|
|
400
|
+
#
|
|
401
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
402
|
+
# Additional keyword arguments.
|
|
403
|
+
#
|
|
404
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
405
|
+
# Optional DNS nameserver(s) to query.
|
|
406
|
+
#
|
|
407
|
+
# @option [String, nil] :nameserver
|
|
408
|
+
# Optional DNS nameserver to query.
|
|
409
|
+
#
|
|
410
|
+
# @return [Array<Resolv::DNS::Resource::IN::A>]
|
|
411
|
+
# All of the `A` DNS records belonging to the host name.
|
|
412
|
+
#
|
|
413
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/A
|
|
414
|
+
#
|
|
415
|
+
def dns_get_a_records(name,**kwargs)
|
|
416
|
+
dns_resolver(**kwargs).get_a_records(name.to_s)
|
|
417
|
+
end
|
|
418
|
+
|
|
419
|
+
#
|
|
420
|
+
# Queries all IPv4 addresses belonging to the host name.
|
|
421
|
+
#
|
|
422
|
+
# @param [String] name
|
|
423
|
+
# The host name to query.
|
|
424
|
+
#
|
|
425
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
426
|
+
# Additional keyword arguments.
|
|
427
|
+
#
|
|
428
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
429
|
+
# Optional DNS nameserver(s) to query.
|
|
430
|
+
#
|
|
431
|
+
# @option [String, nil] :nameserver
|
|
432
|
+
# Optional DNS nameserver to query.
|
|
433
|
+
#
|
|
434
|
+
# @return [Array<String>]
|
|
435
|
+
# All of the IPv4 addresses belonging to the host name.
|
|
436
|
+
#
|
|
437
|
+
def dns_get_a_addresses(name,**kwargs)
|
|
438
|
+
dns_resolver(**kwargs).get_a_addresses(name.to_s)
|
|
439
|
+
end
|
|
440
|
+
|
|
441
|
+
#
|
|
442
|
+
# Queries the first `AAAA` DNS records belonging to the host name.
|
|
443
|
+
#
|
|
444
|
+
# @param [String] name
|
|
445
|
+
# The host name to query.
|
|
446
|
+
#
|
|
447
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
448
|
+
# Additional keyword arguments.
|
|
449
|
+
#
|
|
450
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
451
|
+
# Optional DNS nameserver(s) to query.
|
|
452
|
+
#
|
|
453
|
+
# @option [String, nil] :nameserver
|
|
454
|
+
# Optional DNS nameserver to query.
|
|
455
|
+
#
|
|
456
|
+
# @return [Resolv::DNS::Resource::IN::AAAA, nil]
|
|
457
|
+
# The first `AAAA` DNS record or `nil` if the host name has no
|
|
458
|
+
# `AAAA` records.
|
|
459
|
+
#
|
|
460
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/AAAA
|
|
461
|
+
#
|
|
462
|
+
def dns_get_aaaa_record(name,**kwargs)
|
|
463
|
+
dns_resolver(**kwargs).get_aaaa_record(name.to_s)
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
#
|
|
467
|
+
# Queries the first IPv6 address belonging to the host name.
|
|
468
|
+
#
|
|
469
|
+
# @param [String] name
|
|
470
|
+
# The host name to query.
|
|
471
|
+
#
|
|
472
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
473
|
+
# Additional keyword arguments.
|
|
474
|
+
#
|
|
475
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
476
|
+
# Optional DNS nameserver(s) to query.
|
|
477
|
+
#
|
|
478
|
+
# @option [String, nil] :nameserver
|
|
479
|
+
# Optional DNS nameserver to query.
|
|
480
|
+
#
|
|
481
|
+
# @return [String, nil]
|
|
482
|
+
# The first IPv6 address or `nil` if the host name has no IPv6
|
|
483
|
+
# addresses.
|
|
484
|
+
#
|
|
485
|
+
def dns_get_aaaa_address(name,**kwargs)
|
|
486
|
+
dns_resolver(**kwargs).get_aaaa_address(name.to_s)
|
|
487
|
+
end
|
|
488
|
+
|
|
489
|
+
#
|
|
490
|
+
# Queries all `AAAA` DNS records belonging to the host name.
|
|
491
|
+
#
|
|
492
|
+
# @param [String] name
|
|
493
|
+
# The host name to query.
|
|
494
|
+
#
|
|
495
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
496
|
+
# Additional keyword arguments.
|
|
497
|
+
#
|
|
498
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
499
|
+
# Optional DNS nameserver(s) to query.
|
|
500
|
+
#
|
|
501
|
+
# @option [String, nil] :nameserver
|
|
502
|
+
# Optional DNS nameserver to query.
|
|
503
|
+
#
|
|
504
|
+
# @return [Array<Resolv::DNS::Resource::IN::AAAA>]
|
|
505
|
+
# All of the `AAAA` DNS records belonging to the host name.
|
|
506
|
+
#
|
|
507
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/AAAA
|
|
508
|
+
#
|
|
509
|
+
def dns_get_aaaa_records(name,**kwargs)
|
|
510
|
+
dns_resolver(**kwargs).get_aaaa_records(name.to_s)
|
|
511
|
+
end
|
|
512
|
+
|
|
513
|
+
#
|
|
514
|
+
# Queries all IPv6 addresses belonging to the host name.
|
|
515
|
+
#
|
|
516
|
+
# @param [String] name
|
|
517
|
+
# The host name to query.
|
|
518
|
+
#
|
|
519
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
520
|
+
# Additional keyword arguments.
|
|
521
|
+
#
|
|
522
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
523
|
+
# Optional DNS nameserver(s) to query.
|
|
524
|
+
#
|
|
525
|
+
# @option [String, nil] :nameserver
|
|
526
|
+
# Optional DNS nameserver to query.
|
|
527
|
+
#
|
|
528
|
+
# @return [Array<String>]
|
|
529
|
+
# All IPv6 addresses belonging to the host name.
|
|
530
|
+
#
|
|
531
|
+
def dns_get_aaaa_addresses(name,**kwargs)
|
|
532
|
+
dns_resolver(**kwargs).get_aaaa_addresses(name.to_s)
|
|
533
|
+
end
|
|
534
|
+
|
|
535
|
+
#
|
|
536
|
+
# Queries all `SRV` DNS records belonging to the host name.
|
|
537
|
+
#
|
|
538
|
+
# @param [String] name
|
|
539
|
+
# The host name to query.
|
|
540
|
+
#
|
|
541
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
542
|
+
# Additional keyword arguments.
|
|
543
|
+
#
|
|
544
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
545
|
+
# Optional DNS nameserver(s) to query.
|
|
546
|
+
#
|
|
547
|
+
# @option [String, nil] :nameserver
|
|
548
|
+
# Optional DNS nameserver to query.
|
|
549
|
+
#
|
|
550
|
+
# @return [Array<Resolv::DNS::Resource::IN::SRV>]
|
|
551
|
+
# All `SRV` DNS records belonging to the host name.
|
|
552
|
+
#
|
|
553
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/SRV
|
|
554
|
+
#
|
|
555
|
+
def dns_get_srv_records(name,**kwargs)
|
|
556
|
+
dns_resolver(**kwargs).get_srv_records(name.to_s)
|
|
557
|
+
end
|
|
558
|
+
|
|
559
|
+
#
|
|
560
|
+
# Queries all `WKS` (Well-Known-Service) DNS records belonging to the
|
|
561
|
+
# host name.
|
|
562
|
+
#
|
|
563
|
+
# @param [String] name
|
|
564
|
+
# The host name to query.
|
|
565
|
+
#
|
|
566
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
567
|
+
# Additional keyword arguments.
|
|
568
|
+
#
|
|
569
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
570
|
+
# Optional DNS nameserver(s) to query.
|
|
571
|
+
#
|
|
572
|
+
# @option [String, nil] :nameserver
|
|
573
|
+
# Optional DNS nameserver to query.
|
|
574
|
+
#
|
|
575
|
+
# @return [Array<Resolv::DNS::Resource::IN::WKS>]
|
|
576
|
+
# All `WKS` DNS records belonging to the host name.
|
|
577
|
+
#
|
|
578
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/IN/WKS
|
|
579
|
+
#
|
|
580
|
+
def dns_get_wks_records(name,**kwargs)
|
|
581
|
+
dns_resolver(**kwargs).get_wks_records(name.to_s)
|
|
582
|
+
end
|
|
583
|
+
|
|
584
|
+
#
|
|
585
|
+
# Queries the `LOC` (Location) DNS record of the host name.
|
|
586
|
+
#
|
|
587
|
+
# @param [String] name
|
|
588
|
+
# The host name to query.
|
|
589
|
+
#
|
|
590
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
591
|
+
# Additional keyword arguments.
|
|
592
|
+
#
|
|
593
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
594
|
+
# Optional DNS nameserver(s) to query.
|
|
595
|
+
#
|
|
596
|
+
# @option [String, nil] :nameserver
|
|
597
|
+
# Optional DNS nameserver to query.
|
|
598
|
+
#
|
|
599
|
+
# @return [Resolv::DNS::Resource::LOC, nil]
|
|
600
|
+
# The `LOC` DNS record of the host name or `nil` if the host name
|
|
601
|
+
# has no `LOC` record.
|
|
602
|
+
#
|
|
603
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/LOC
|
|
604
|
+
#
|
|
605
|
+
def dns_get_loc_record(name,**kwargs)
|
|
606
|
+
dns_resolver(**kwargs).get_loc_record(name.to_s)
|
|
607
|
+
end
|
|
608
|
+
|
|
609
|
+
#
|
|
610
|
+
# Queries the `MINFO` (Machine-Info) DNS record of the host name.
|
|
611
|
+
#
|
|
612
|
+
# @param [String] name
|
|
613
|
+
# The host name to query.
|
|
614
|
+
#
|
|
615
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
616
|
+
# Additional keyword arguments.
|
|
617
|
+
#
|
|
618
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
619
|
+
# Optional DNS nameserver(s) to query.
|
|
620
|
+
#
|
|
621
|
+
# @option [String, nil] :nameserver
|
|
622
|
+
# Optional DNS nameserver to query.
|
|
623
|
+
#
|
|
624
|
+
# @return [Resolv::DNS::Resource::MINFO, nil]
|
|
625
|
+
# The `MINFO` DNS record of the host name or `nil` if the host name
|
|
626
|
+
# has no `MINFO` record.
|
|
627
|
+
#
|
|
628
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/MINFO
|
|
629
|
+
#
|
|
630
|
+
def dns_get_minfo_record(name,**kwargs)
|
|
631
|
+
dns_resolver(**kwargs).get_minfo_record(name.to_s)
|
|
632
|
+
end
|
|
633
|
+
|
|
634
|
+
#
|
|
635
|
+
# Queries all `MX` DNS records belonging to the host name.
|
|
636
|
+
#
|
|
637
|
+
# @param [String] name
|
|
638
|
+
# The host name to query.
|
|
639
|
+
#
|
|
640
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
641
|
+
# Additional keyword arguments.
|
|
642
|
+
#
|
|
643
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
644
|
+
# Optional DNS nameserver(s) to query.
|
|
645
|
+
#
|
|
646
|
+
# @option [String, nil] :nameserver
|
|
647
|
+
# Optional DNS nameserver to query.
|
|
648
|
+
#
|
|
649
|
+
# @return [Array<Resolv::DNS::Resource::MX>]
|
|
650
|
+
# All `MX` DNS records belonging to the host name.
|
|
651
|
+
#
|
|
652
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/MX
|
|
653
|
+
#
|
|
654
|
+
def dns_get_mx_records(name,**kwargs)
|
|
655
|
+
dns_resolver(**kwargs).get_mx_records(name.to_s)
|
|
656
|
+
end
|
|
657
|
+
|
|
658
|
+
#
|
|
659
|
+
# Queries the mailservers for the host name.
|
|
660
|
+
#
|
|
661
|
+
# @param [String] name
|
|
662
|
+
# The host name to query.
|
|
663
|
+
#
|
|
664
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
665
|
+
# Additional keyword arguments.
|
|
666
|
+
#
|
|
667
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
668
|
+
# Optional DNS nameserver(s) to query.
|
|
669
|
+
#
|
|
670
|
+
# @option [String, nil] :nameserver
|
|
671
|
+
# Optional DNS nameserver to query.
|
|
672
|
+
#
|
|
673
|
+
# @return [Array<String>]
|
|
674
|
+
# The host names of the mailservers serving the given host name.
|
|
675
|
+
#
|
|
676
|
+
def dns_get_mailservers(name,**kwargs)
|
|
677
|
+
dns_resolver(**kwargs).get_mailservers(name.to_s)
|
|
678
|
+
end
|
|
679
|
+
|
|
680
|
+
#
|
|
681
|
+
# Queries all `NS` DNS records belonging to the host name.
|
|
682
|
+
#
|
|
683
|
+
# @param [String] name
|
|
684
|
+
# The host name to query.
|
|
685
|
+
#
|
|
686
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
687
|
+
# Additional keyword arguments.
|
|
688
|
+
#
|
|
689
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
690
|
+
# Optional DNS nameserver(s) to query.
|
|
691
|
+
#
|
|
692
|
+
# @option [String, nil] :nameserver
|
|
693
|
+
# Optional DNS nameserver to query.
|
|
694
|
+
#
|
|
695
|
+
# @return [Array<Resolv::DNS::Resource::NS>]
|
|
696
|
+
# All `NS` DNS records belonging to the host name.
|
|
697
|
+
#
|
|
698
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/NS
|
|
699
|
+
#
|
|
700
|
+
def dns_get_ns_records(name,**kwargs)
|
|
701
|
+
dns_resolver(**kwargs).get_ns_records(name.to_s)
|
|
702
|
+
end
|
|
703
|
+
|
|
704
|
+
#
|
|
705
|
+
# Queries the nameservers for 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<String>]
|
|
720
|
+
# The host names of the nameservers serving the given host name.
|
|
721
|
+
#
|
|
722
|
+
def dns_get_nameservers(name,**kwargs)
|
|
723
|
+
dns_resolver(**kwargs).get_nameservers(name.to_s)
|
|
724
|
+
end
|
|
725
|
+
|
|
726
|
+
#
|
|
727
|
+
# Queries the first `PTR` DNS record for the IP address.
|
|
728
|
+
#
|
|
729
|
+
# @param [String] ip
|
|
730
|
+
# The IP address to query.
|
|
731
|
+
#
|
|
732
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
733
|
+
# Additional keyword arguments.
|
|
734
|
+
#
|
|
735
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
736
|
+
# Optional DNS nameserver(s) to query.
|
|
737
|
+
#
|
|
738
|
+
# @option [String, nil] :nameserver
|
|
739
|
+
# Optional DNS nameserver to query.
|
|
740
|
+
#
|
|
741
|
+
# @return [Resolv::DNS::Resource::PTR, nil]
|
|
742
|
+
# The first `PTR` DNS record of the host name or `nil` if the host
|
|
743
|
+
# name has no `PTR` records.
|
|
744
|
+
#
|
|
745
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/PTR
|
|
746
|
+
#
|
|
747
|
+
def dns_get_ptr_record(ip,**kwargs)
|
|
748
|
+
dns_resolver(**kwargs).get_ptr_record(ip.to_s)
|
|
749
|
+
end
|
|
750
|
+
|
|
751
|
+
#
|
|
752
|
+
# Queries the `PTR` host name for the IP address.
|
|
753
|
+
#
|
|
754
|
+
# @param [String] ip
|
|
755
|
+
# The IP address to query.
|
|
756
|
+
#
|
|
757
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
758
|
+
# Additional keyword arguments.
|
|
759
|
+
#
|
|
760
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
761
|
+
# Optional DNS nameserver(s) to query.
|
|
762
|
+
#
|
|
763
|
+
# @option [String, nil] :nameserver
|
|
764
|
+
# Optional DNS nameserver to query.
|
|
765
|
+
#
|
|
766
|
+
# @return [String, nil]
|
|
767
|
+
# The host name that points to the given IP.
|
|
768
|
+
#
|
|
769
|
+
def dns_get_ptr_name(ip,**kwargs)
|
|
770
|
+
dns_resolver(**kwargs).get_ptr_name(ip.to_s)
|
|
771
|
+
end
|
|
772
|
+
|
|
773
|
+
#
|
|
774
|
+
# Queries all `PTR` DNS records for the IP address.
|
|
775
|
+
#
|
|
776
|
+
# @param [String] ip
|
|
777
|
+
# The IP address to query.
|
|
778
|
+
#
|
|
779
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
780
|
+
# Additional keyword arguments.
|
|
781
|
+
#
|
|
782
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
783
|
+
# Optional DNS nameserver(s) to query.
|
|
784
|
+
#
|
|
785
|
+
# @option [String, nil] :nameserver
|
|
786
|
+
# Optional DNS nameserver to query.
|
|
787
|
+
#
|
|
788
|
+
# @return [Array<Resolv::DNS::Resource::PTR>]
|
|
789
|
+
# All `PTR` DNS records for the given IP.
|
|
790
|
+
#
|
|
791
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/PTR
|
|
792
|
+
#
|
|
793
|
+
def dns_get_ptr_records(ip,**kwargs)
|
|
794
|
+
dns_resolver(**kwargs).get_ptr_records(ip.to_s)
|
|
795
|
+
end
|
|
796
|
+
|
|
797
|
+
#
|
|
798
|
+
# Queries all `PTR` names for the IP address.
|
|
799
|
+
#
|
|
800
|
+
# @param [String] ip
|
|
801
|
+
# The IP address to query.
|
|
802
|
+
#
|
|
803
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
804
|
+
# Additional keyword arguments.
|
|
805
|
+
#
|
|
806
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
807
|
+
# Optional DNS nameserver(s) to query.
|
|
808
|
+
#
|
|
809
|
+
# @option [String, nil] :nameserver
|
|
810
|
+
# Optional DNS nameserver to query.
|
|
811
|
+
#
|
|
812
|
+
# @return [Array<String>]
|
|
813
|
+
# The `PTR` names for the given IP.
|
|
814
|
+
#
|
|
815
|
+
def dns_get_ptr_names(ip,**kwargs)
|
|
816
|
+
dns_resolver(**kwargs).get_ptr_names(ip.to_s)
|
|
817
|
+
end
|
|
818
|
+
|
|
819
|
+
#
|
|
820
|
+
# Queries the first `SOA` DNS record belonging to the host name.
|
|
821
|
+
#
|
|
822
|
+
# @param [String] name
|
|
823
|
+
# The host name to query.
|
|
824
|
+
#
|
|
825
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
826
|
+
# Additional keyword arguments.
|
|
827
|
+
#
|
|
828
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
829
|
+
# Optional DNS nameserver(s) to query.
|
|
830
|
+
#
|
|
831
|
+
# @option [String, nil] :nameserver
|
|
832
|
+
# Optional DNS nameserver to query.
|
|
833
|
+
#
|
|
834
|
+
# @return [Resolv::DNS::Resource::SOA, nil]
|
|
835
|
+
# The first `SOA` DNS record for the host name or `nil` if the host
|
|
836
|
+
# name has no `SOA` records.
|
|
837
|
+
#
|
|
838
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/SOA
|
|
839
|
+
#
|
|
840
|
+
def dns_get_soa_record(name,**kwargs)
|
|
841
|
+
dns_resolver(**kwargs).get_soa_record(name.to_s)
|
|
842
|
+
end
|
|
843
|
+
|
|
844
|
+
#
|
|
845
|
+
# Queiries the first `TXT` DNS record belonging to the host name.
|
|
846
|
+
#
|
|
847
|
+
# @param [String] name
|
|
848
|
+
# The host name to query.
|
|
849
|
+
#
|
|
850
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
851
|
+
# Additional keyword arguments.
|
|
852
|
+
#
|
|
853
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
854
|
+
# Optional DNS nameserver(s) to query.
|
|
855
|
+
#
|
|
856
|
+
# @option [String, nil] :nameserver
|
|
857
|
+
# Optional DNS nameserver to query.
|
|
858
|
+
#
|
|
859
|
+
# @return [Resolv::DNS::Resource::TXT, nil]
|
|
860
|
+
# The first `TXT` DNS record for the host name or `nil` if the host
|
|
861
|
+
# name has no `TXT` records.
|
|
862
|
+
#
|
|
863
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/TXT
|
|
864
|
+
#
|
|
865
|
+
def dns_get_txt_record(name,**kwargs)
|
|
866
|
+
dns_resolver(**kwargs).get_txt_record(name.to_s)
|
|
867
|
+
end
|
|
868
|
+
|
|
869
|
+
#
|
|
870
|
+
# Queries the first `TXT` string belonging to the host name.
|
|
871
|
+
#
|
|
872
|
+
# @param [String] name
|
|
873
|
+
# The host name to query.
|
|
874
|
+
#
|
|
875
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
876
|
+
# Additional keyword arguments.
|
|
877
|
+
#
|
|
878
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
879
|
+
# Optional DNS nameserver(s) to query.
|
|
880
|
+
#
|
|
881
|
+
# @option [String, nil] :nameserver
|
|
882
|
+
# Optional DNS nameserver to query.
|
|
883
|
+
#
|
|
884
|
+
# @return [String, nil]
|
|
885
|
+
# The first `TXT` string belonging to the host name or `nil` if the
|
|
886
|
+
# host name has no `TXT` records.
|
|
887
|
+
#
|
|
888
|
+
def dns_get_txt_string(name,**kwargs)
|
|
889
|
+
dns_resolver(**kwargs).get_txt_string(name.to_s)
|
|
890
|
+
end
|
|
891
|
+
|
|
892
|
+
#
|
|
893
|
+
# Queries all `TXT` DNS records belonging to the host name.
|
|
894
|
+
#
|
|
895
|
+
# @param [String] name
|
|
896
|
+
# The host name to query.
|
|
897
|
+
#
|
|
898
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
899
|
+
# Additional keyword arguments.
|
|
900
|
+
#
|
|
901
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
902
|
+
# Optional DNS nameserver(s) to query.
|
|
903
|
+
#
|
|
904
|
+
# @option [String, nil] :nameserver
|
|
905
|
+
# Optional DNS nameserver to query.
|
|
906
|
+
#
|
|
907
|
+
# @return [Array<Resolv::DNS::Resource::TXT>]
|
|
908
|
+
# All of the `TXT` DNS records belonging to the host name.
|
|
909
|
+
#
|
|
910
|
+
# @see https://rubydoc.info/stdlib/resolv/Resolv/DNS/Resource/TXT
|
|
911
|
+
#
|
|
912
|
+
def dns_get_txt_records(name,**kwargs)
|
|
913
|
+
dns_resolver(**kwargs).get_txt_records(name.to_s)
|
|
914
|
+
end
|
|
915
|
+
|
|
916
|
+
#
|
|
917
|
+
# Queries all of the `TXT` string values of the host name.
|
|
918
|
+
#
|
|
919
|
+
# @param [String] name
|
|
920
|
+
# The host name to query.
|
|
921
|
+
#
|
|
922
|
+
# @param [Hash{Symbol => Object}] kwargs
|
|
923
|
+
# Additional keyword arguments.
|
|
924
|
+
#
|
|
925
|
+
# @option [Array<String>, String, nil] :nameservers
|
|
926
|
+
# Optional DNS nameserver(s) to query.
|
|
927
|
+
#
|
|
928
|
+
# @option [String, nil] :nameserver
|
|
929
|
+
# Optional DNS nameserver to query.
|
|
930
|
+
#
|
|
931
|
+
# @return [Array<String>]
|
|
932
|
+
# All `TXT` string values belonging of the host name.
|
|
933
|
+
#
|
|
934
|
+
def dns_get_txt_strings(name,**kwargs)
|
|
935
|
+
dns_resolver(**kwargs).get_txt_strings(name.to_s)
|
|
936
|
+
end
|
|
937
|
+
end
|
|
938
|
+
end
|
|
939
|
+
end
|
|
940
|
+
end
|
|
941
|
+
end
|