Учитывая единый общедоступный IP-адрес (одноранговый узел A) и список многих других общедоступных IP-адресов (сочетание адресов IPv4 и IPv6), какой самый простой способ сопоставить одноранговый узел A с IP-адресами n
ближайших ровесников, не имея сверстников вручную ping друг друга для латентного бенчмаркинга?
Я думаю, что это возможно, используя BGP с кучей сложных запросов (и, возможно, что-то, что связано с OSPF), но я надеялся, что может быть решение или библиотека, которые сделают ее такой же простой, как теоретический функциональный вызов ниже.
// `peer` is a single IP address. `peer_list` is a list of IP addresses
// get the 5 nearest peers (ordered) to `peer` from `peer_list`
nearest_peers = get_nearest_ips(peer, peer_list, 5);
Должен ли я просто использовать локальный экземпляр базы данных MaxMind GeoIP + Haversine/Vincenty или практично использовать BGP через библиотеку (с соответствующим кэшированием там, где это необходимо), чтобы выполнить это?
Кажется, что этот вид кода может существовать в реализации opencast anycast routing, хотя я не смог найти ничего, что бы соответствовало этому варианту использования.
Решение или предлагаемая библиотека не должны работать с node.js - любой язык в порядке.