I’m currently building a little tool that tries to create a map of internet service provider relationships (and carrier-grade or firewalled NATs thereof). Use case is an offline-ready approximate map of ISPs and their connections, IP ranges, organizations etc. in order to not need a TURN server for basic peer discovery.
While reading the [documentation](https://www.ripe.net/manage-ips-and-asns/db/support/documentation/ripe-database-query-reference-manual) of RIPEs whois server, I learned about their new API which allows inverse queries by type.
Now to the awesome part: List all inverse query types that are supported by the whois server via `whois -h whois.ripe.net — ‘-q types’`.
Now want to learn exactly which kind of businesses have which kind of ISP (and therefore what kind of contract hardware)? Worry no more, do this via `whois -h whois.ripe.net — ‘-i mnt-by UNITYMEDIA-MNT’` and expect a very damn long list of all business customers that currently have their internet connection via Unitymedia (German subsidary of VODANET-MNT). Works with other ISPs, as long as you got their `mntner` (Maintainer) field, or `tech-c`, or `admin-c` that are searchable, too.
Works with pretty much every ISP managed by RIPE NCC, so it’s Europe + Russia + Middle East. You need an IP range to discover their mnt-by identifier of the specific ISP and then you can do the inverse query afterwards.
I’m currently reading documentations of ARIN and other registries, but so far their servers don’t seem to support a similar query API.