Я являюсь создателем host.io , который делает нечто подобное, показывая вам список всех доменов, размещенных на одном IP-адресе (вместе со списком доменов, которые ссылаются надомен и многое другое).Например, вот список доменов, размещенных на том же IP-адресе, что и stackoverflow.com: https://host.io/stackoverflow.com
В других ответах рассказывается, как преобразовать домен в IP-адрес, но это лишь малая часть того, какчтобы найти все домены, которые размещены на IP.Для этого сначала нужно получить (или создать) список всех доступных доменных имен.В настоящее время насчитывается около 250 миллионов.Следующим шагом является разрешение всех этих доменов на IP-адрес.Затем вам нужно сохранить все эти домены в IP-пары в базе данных, а затем вы можете запросить, чтобы получить список всех доменов на одном IP-адресе.И затем вам нужно делать это с регулярной периодичностью, чтобы убедиться, что он обновляется.
Чтобы привести полный пример, давайте создадим файл с 4 доменами и разрешим их по IP-адресам:
$ cat domains.txt
facebook.com
fb.com
stackoverflow.com
stackexchange.com
# Let's resolve the domains to IPs with dig - could use nslookup or similar
$ cat domains.txt | xargs -I% bash -c "dig +short % | tail -n1" > ips.txt
31.13.76.68
31.13.76.68
151.101.129.69
151.101.193.69
# Let's combine the domains and IPs using paste
$ paste domains.txt ips.txt > combined.tsv
$ cat combined.tsv
facebook.com 31.13.76.68
fb.com 31.13.76.68
stackoverflow.com 151.101.129.69
stackexchange.com 151.101.129.69
# Let's create a DB table and import the data, and write a query
# to find any domains in our dataset that are hosted on the same
# domain as stackoverflow.com
$ psql $DB_URL
=> create table details (domain text, ip text);
=> \copy details from ~/combined.tsv;
=> select domain from details where ip = (select ip from details where domain = 'stackoverflow.com');
domain
-------------------
stackoverflow.com
stackexchange.com
(2 rows)