network

グローバルIPアドレスの確認をコマンド化する

投稿日:2019年8月11日

「Dynamic DNSサービスで定期的にDNS更新をしなきゃいけないけど、固定IPじゃなくて変わった時に調べるのが煩わしい」

といった時に手作業が発生しないようにWeb APIがあるサービスを使ってコマンド化しておき、cronなどで自動実行できるようにしておきます。

実行環境

  • CentOS 7.6
  • curlコマンド
  • jqコマンド

Web APIがあるグローバルIP確認サービス

ドメイン創設年をサービス開始年として判断しています。

ip-api.com

サービス開始:2012年

whois情報や緯度経度も返してくれるスーパー便利API。

httpbin.org

サービス開始:2011年

リクエストを編集したりBasic認証を付けてシミュレーションしたり、も出来るプログラマ向けAPI。

inet-ip.info

サービス開始:2013年

レスポンスフォーマットはjson、yaml、toml。

globalip.me

サービス開始:2014年

レスポンスフォーマットはjson、csv、xml。

ip-api.comでグローバルIP取得を自動化

今回はip-api.comを採用します。

コマンドラインJSONパーサ「jq」をインストール

Web APIが返却するフォーマットは大半JSONに対応している為、curlで受け取ったJSONを解析できるようにjqコマンドを入れておきます。

# yum install jq

インストール:
  jq.x86_64 0:1.5-1.el7

結果をjsonで貰う

ip-api.com/jsonをGETするとjsonが貰えます。

# curl -Ss http://ip-api.com/json/ | jq
{
  "as": "プロバイダ",
  "city": "市区町村",
  "country": "Japan",
  "countryCode": "JP",
  "isp": "プロバイダ名",
  "lat": 緯度,
  "lon": 軽度,
  "org": "組織名",
  "query": "IPアドレス",
  "region": "13",
  "regionName": "Tokyo",
  "status": "success",
  "timezone": "Asia/Tokyo",
  "zip": "郵便番号"
}

queryキーにIPアドレスが入っていることが分かったのでjqコマンドで抜き出します。

curlの-sで余分な進捗表示を消し、-Sでエラーは表示するようにしておきます。
jqの-rオプションはダブルクォートを省いて表示してくれます。

# curl -sS http://ip-api.com/json/ | jq -r '.query'
118.xxx.xxx.xxx

無事自宅のグローバルIPアドレスが取れました。

-network
-, ,

執筆者:

関連記事

LANに接続しているPCをWindowsから見つける

家庭内LANでNASのIPアドレスを忘れたので調べたい職場LANに接続中のホストを調べたい NetEnumを入れられれば取れる情報も多く、ポートスキャンやパケットキャプチャも出来て幸せになれます。 単 …

特定ドメインのサブドメインを探る

注:dnsmapは第三者サーバに対しては使用せず、自分の管理ドメインに対してセキュリティ確認用途でご使用ください。 昨今のDNSサーバはゾーン転送が抑制されており、サブドメイン情報を引っ張ってくること …

whoisコマンドで新興TLDのドメイン創設日を調べる

各ドメインの情報は属するトップレベルドメイン(.jpなど)が管理するDNSサーバによって管理されています。この情報を辿って指定したドメインの情報を参照する仕組みが「whois」です。 最近は各トップレ …

Linux、Mac、Windows間のネットワーク速度をiperf3で調べる

なんかネットワークが遅いから調べたい。あのLANケーブルひょっとして100Mbps用じゃない?1Gbpsじゃないかも。試験的にネットワーク帯域を絞ったから通信速度を確認したい。 こういった時、通信する …

インターネット速度テストサービスの結果を比較してみる

「インターネット疎通の速度が帯域通りになっているか確かめたい」 仕事でもプライベートでもそんなニーズがあります。 数多あるインターネット速度計測サービスを試してみて「日本国内で使う場合、最も正確な速度 …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。