#!/bin/sh # 2019-09-09, Nico Schottelius # Show countries / region of VPN clients connected with wireguard # countries + region for ip in $(wg | grep endpoint | sed -e 's/endpoint: //' -e 's/\(.*\):[0-9]*/\1/' -e 's/\[//' -e 's/\]//'); do curl -s ipinfo.io/$ip | grep -e country -e region; done # countries with counter ( for ip in $(wg | grep endpoint | sed -e 's/endpoint: //' -e 's/\(.*\):[0-9]*/\1/' -e 's/\[//' -e 's/\]//'); do curl -s ipinfo.io/$ip | grep -e country ; done ) | sort | uniq -c | sort -g # Get number of configured VPNs configured_vpns=$(wg show | grep ^peer | wc -l) active_vpns=$(wg show | grep endpoint | wc -l) echo "Configured VPNs: ${configured_vpns}" echo "Active VPNs: ${active_vpns}"