Единственный надежный инструмент — сделать traceroute между ними. Или ping — кто отозвался быстрее, тот ближе. Или замерить время между SYN и SYN ACK. В общем, провести какое-то измерение.
Интернет — штука децентрализованная… Можно найти список префиксов для каждой AS, но сведения о текущей топологии удастся получить только через looking glass'ы, а это не годится для p2p системы. И информация, актуальная сейчас, может стать неактуальной через пару минут, когда провайдеру вздумается поменять route policy. Ну и заставлять клиента ворочить full view — на мой взгляд перебор.