![如何根据 IP 位置向指标系统监视器添加图像图标(例如国旗)?](https://linux22.com/image/875826/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%20IP%20%E4%BD%8D%E7%BD%AE%E5%90%91%E6%8C%87%E6%A0%87%E7%B3%BB%E7%BB%9F%E7%9B%91%E8%A7%86%E5%99%A8%E6%B7%BB%E5%8A%A0%E5%9B%BE%E5%83%8F%E5%9B%BE%E6%A0%87%EF%BC%88%E4%BE%8B%E5%A6%82%E5%9B%BD%E6%97%97%EF%BC%89%EF%BC%9F.png)
我最近安装了 fossfreedom 的系统指示器监视器(https://github.com/fossfreedom/indicator-sysmonitor),并且我可以添加自定义 shell 命令。
由于我通过 VPN 连接到世界各地的许多不同服务器,因此我希望让此监视器根据位置显示旗帜图标。目前,我将其配置为显示两个字母的国家代码(例如美国、英国、巴西等),但我希望它将其替换为目录中旗帜图标的位置。
我从 famfamfam-flag-png 安装了一系列旗帜图标,它在这里安装了 16x11 旗帜 png:/usr/share/flags/countries/16x11/
因此,我认为使用“indicator-sysmonitor”可以添加自定义脚本($HOME/scripts/checklocation
),例如:
curl ipv4.icanhazip.com | curl ipinfo.io | grep country | awk '{print $2}' | sed 's/,//g' | sed 's/"//g'
报告两个字母的国家代码,然后我可以将其替换为相应图标的路径。但我不确定该怎么做...需要帮助配置上面的自定义脚本以报告适当的标志图标,然后使其工作,以便它将在我的面板中用 BR 标志替换“LOC: BR”。
答案1
您目前正在使用这一长串命令来获取您的国家代码:
$ curl ipv4.icanhazip.com | curl ipinfo.io | grep country | awk '{print $2}' | sed 's/,//g' | sed 's/"//g'
US
你可以将整个过程简化为一个http://ipinfo.io抬头:
$ curl ipinfo.io/country
US
您可以将其与标志图像路径组合,如下所示:
$ country=$(curl -s ipinfo.io/country)
$ flag="/usr/share/flags/countries/16x11/${country}.png"
$ echo $flag
/usr/share/flags/countries/16x11/US.png