コマンドラインで自分のグローバルIPをチェックしたい。
コマンドラインでグローバルIPを取得して、今のIPを確認して保存したい。
必要なもの
- xmllint または jq
- curl
グローバルIPの取得
curl -s http://www.myglobalip.com/ | xmllint --html --xpath '//*[@id="default"]//text()' -
準備
curl がないって環境は存在しないだろうけど、xmllint はない場合はインストールする。
sudo apt install libxml2-utils
ubuntu/debian の場合はこれでxmllint という超絶便利なコマンドが入手できる。
alias
alias 化しておかないとふべん
alias xpath="xmllint --html --xpath"
取得するサイトを変えてあれこれ試す。
json で取得できるサイトを使う
xpath の場合
curl https://www.cman.jp/network/support/go_access.cgi -s | xpath '//*[@class="outIp"]/text()' -
curl -s http://www.displaymyip.com/ | xpath '//*[@class="ip"]/text()' -
jq の場合
curl -s http://httpbin.org/ip | jq -r .origin
curl -s 'https://api.ipify.org?format=json' | jq -r .ip
jq も xmllint も無いって人は
curl inet-ip.info
スクリプトから グローバルIPをチェックしたい時の注意事項
老舗を使え、HTMLのデザインが古い奴を選べ、ちゃんと10年以上安定化移動している証拠だ。
HTMLのデザインが古いのは、たぶんみんなスクレーピングしてるから。
最近のデザインのものは、すぐにサービス停止したり、気まぐれでドメインが失効したり。対応が面倒くさい。
企業は倒産するかもしれないので個人のものより寿命が短い傾向がある。
出来る限り長く稼働して居るものが安定です。
ドメイン名の有効期間を調べて長く使えるものが良いでしょう
特に注意するもの、ドコかの企業が運営してるもの、ブロガーが運営してるものは多分数年内に消える。面倒くさいですよね。
自宅鯖運営民にとってグローバルIPが自動更新されなくなると死活問題ですから。
2022-04-04
エイリアスについて更新