magiclen / whois-rust

This is a WHOIS client library for Rust, inspired by https://github.com/hjr265/node-whois
MIT License
19 stars 9 forks source link

Remove [ ] from around IPv6 addresses so whois works on them #5

Open jonjensen opened 2 years ago

jonjensen commented 2 years ago

This is a quick hack to work around a problem I ran into when using whois for simple IP address lookups. You probably don't want to accept this, but this illustrates the problem.

With the demo config from the docs:

    "_": {
        "ip": {
            "host": "whois.arin.net",
            "query": "n + $addr\r\n"
        }
    }

IPv4 lookups work fine, but IPv6 lookups get this error, for example on 2600:3c00:::

No match found for n + [2600:3c00::].

I found that the IPv6 address was being wrapped in [ and ] which caused the problem, and this quick hack to strip them works.

It would be nicer to omit the [ and ] from the beginning since we don't want them, but I imagine that would break other users of the validators crate.

Perhaps there should be an option to have validators emit IPv6 with no [ and ]? I'd be willing to try to implement that if you think that makes sense.