假设有一个公共IP地址(节点A),以及许多其他公共IP地址的列表(包括IPv4和IPv6地址),最简单的方法是什么,可以将节点A与最近的n个节点的IP地址匹配起来,而不必让这些节点手动相互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实现这一目标?
看起来这种代码可能存在于开源的任播路由实现中,尽管我还没有找到符合这个用例的任何内容。
解决方案或建议的库不必在node.js上工作 - 任何语言都可以。