コマンドラインからサクッと使える Web ツール

LinuxTech

コマンドラインから使える・日頃使っている Web ツールをまとめました。
一つ一つは小さな機能ですが、作業中のターミナル上だけで完結したり、スクリプトに埋め込んだりすることで便利に使えます。

ipinfo.io

自身の グローバル IP アドレスとその関連情報を確認できます。

$ curl ipinfo.io
{
  "ip": "52.199.254.228",
  "hostname": "ec2-52-199-254-228.ap-northeast-1.compute.amazonaws.com",
  "city": "Hachiman",
  "region": "Shiga",
  "country": "JP",
  "loc": "35.1333,136.1000",
  "org": "AS16509 Amazon.com, Inc."
}

// 情報を絞り込む
$ curl ipinfo.io/ip
52.199.254.228

IP アドレスを指定して情報を得ることも可能です。ログ上で気になった接続元 IP の調査にも応用できます。

$ curl ipinfo.io/8.8.8.8
{
  "ip": "8.8.8.8",
  "hostname": "google-public-dns-a.google.com",
  "city": "Mountain View",
  "region": "California",
  "country": "US",
  "loc": "37.3860,-122.0840",
  "org": "AS15169 Google LLC",
  "postal": "94035",
  "phone": "650"
}

公式ドキュメント も整備されており、cURL 以外にも Node.JS, jQuery, Python, Ruby からの利用例が紹介されています。

uuid.jp

名前の通り、UUID (恐らくバージョン4)を生成して返してくれるサービスです。

$ curl uuid.jp
d365ffce-e214-467c-9532-11936c360857

uuidgen コマンドが利用できる場合はそちらでも済みますが……

nict.go.jp

NICT(情報通信研究機構)の API から日本標準時を取得できます。
公開サーバの一覧や取得可能な形式については、NICT 公式サイト に掲載されています。

$ curl https://ntp-a1.nict.go.jp/cgi-bin/json
{
 "id": "ntp-a1.nict.go.jp",
 "it": 0.000,
 "st": 1513084302.466,
 "leap": 36,
 "next": 1483228800,
 "step": 1
}

$ curl https://ntp-a1.nict.go.jp/cgi-bin/time
Tue Dec 12 22:17:18 2017 JST

URL が長いため、直接呼び出すというよりは時刻に絡むスクリプトで使うことが多いです。

169.254.169.254

AWS EC2 限定となりますが、インスンタンス ID・インスタンスタイプ・Private/Public IP などが確認できる API が用意されています。

$ curl 169.254.169.254/latest/meta-data/
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
instance-action
instance-id
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/

$ curl 169.254.169.254/latest/meta-data/instance-type
t2.micro

インスタンスメタデータとユーザーデータ – Amazon Elastic Compute Cloud

まとめ

  • コマンドラインから利用できる Web ツールを紹介しました
  • IP を確認したり、現在時刻を取得したり、UUID を生成したりできます
  • 各種スクリプトと組み合わせると便利です

他にもコマンドから活用できそうな Web ツールや API があればぜひ教えてください。

LinuxTech