- Используйте базу данных whois, чтобы узнать, кому назначен IP-адрес.
- Используйте DNS для обратного просмотра IP-адреса.
- Используйте traceroute, чтобы угадать местоположение на основе маршрутизаторов, ведущих к хосту
В качестве примера рассмотрим stackoverflow.com (64.34.119.12)
$ whois 64.34.119.12 | egrep "(OrgName)|(City)|(State)|(Country)"
OrgName: Peer 1 Network Inc.
City: New York
StateProv: NY
Country: US
whois показывает нам, что они, вероятно, в Нью-Йорке, Нью-Йорке.
$ host 64.34.119.12
12.119.34.64.in-addr.arpa domain name pointer stackoverflow.com.
Обратный DNS (запись PTR) здесь не помогает. Однако у многих интернет-провайдеров есть записи обратного DNS для конкретного региона, которые могут помочь в этом процессе (особенно для динамически назначаемых хостов). Как пример:
$ host 24.25.195.1
1.195.25.24.in-addr.arpa domain name pointer sndgca-dns-cac-01.san.rr.com.
Этот хост явно идентифицирован и находится по его записи PTR: DNS-сервер Time Warner (Road Runner), кэширующий в Сан-Диего, Калифорния.
Теперь вернемся к процессу определения местоположения stackoverflow.com:
$ traceroute stackoverflow.com
traceroute to stackoverflow.com (64.34.119.12), 64 hops max, 40 byte packets
ms
(... removed the first few hops ...)
8 ae-6-6.ebr1.Chicago1.Level3.net (4.69.140.189) 30.9 ms 28.855 ms 25.183 ms
9 ae-2-2.ebr2.NewYork2.Level3.net (4.69.132.66) 54.373 ms 54.197 ms 48.171 ms
10 ae-6-6.ebr2.NewYork1.Level3.net (4.69.141.21) 48.250 ms 50.712 ms 51.293 ms
11 ae-62-62.csw1.NewYork1.Level3.net (4.69.148.34) 59.493 ms ae-82-82.csw3.NewYork1.Level3.net (4.69.148.42) 51.694 ms ae-62-62.csw1.NewYork1.Level3.net (4.69.148.34) 58.315 ms
12 ae-3-89.edge1.NewYork1.Level3.net (4.68.16.142) 51.529 ms ae-2-79.edge1.NewYork1.Level3.net (4.68.16.78) 50.77 ms ae-3-89.edge1.NewYork1.Level3.net (4.68.16.142) 50.567 ms
13 10ge-te-1-1.nyc-75bre-dis-2.peer1.net (216.187.115.77) 50.776 ms 51.193 ms 56.166 ms
14 gig2-0.nyc-gsr-b.peer1.net (216.187.123.5) 54.994 ms 58.813 ms 51.794 ms
15 gwny01.stackoverflow.com (64.34.41.58) 54.121 ms 52.65 ms 54.166 ms
16 * * *
(... remaining time outs removed ...)
Вывод traceroute подтверждает наше подозрение, что stackoverflow.com размещен в Нью-Йорке, Нью-Йорк.
Это один из способов решения геолокации без API.