Содержание

Как определить геолокацию своих пиров

С помощью нижеследующих команд можно определить, в каких странах находятся узлы, к которым вы подключены (или которые подключены к вам).

Примечание: в конфигурационном файле Yggdrasil должен быть задан параметр AdminListen, отличный от none.

Примечание: не обрабатываются IPv6-адреса пиров.

С помощью geoiplookup

sudo apt install geoip-bin

Вывод IP-адресов всех пиров с кодами стран:

sudo yggdrasilctl getPeers | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | while read ip; do printf "%-16s" "$ip "; geoiplookup $ip | sed 's/GeoIP Country Edition: \([A-Z ]\{2\}\).*/\1/';done;

Подсчет количества пиров по странам:

sudo yggdrasilctl getPeers | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | while read ip; do geoiplookup $ip | sed 's/GeoIP Country Edition: \([A-Z ]\{2\}\).*/\1/'; done | sort | uniq -c

С помощью whois

sudo apt install whois
sudo yggdrasilctl getPeers|grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | while read ip; do printf "%-16s" "$ip "; whois $ip |grep country;done;

С помощью сервиса ipinfo.io

sudo apt install curl jq
sudo yggdrasilctl getPeers|grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | while read ip; do printf "%-16s" "$ip "; echo $(curl --silent "ipinfo.io/$ip") |jq '.country';done;

Ссылки

API для администрирования: yggdrasil:admin_api

Коды названий стран: https://ru.wikipedia.org/wiki/ISO_3166-1