본문 바로가기
IT이야기/리눅스

curlで自分のグローバルIPアドレス確認する簡単な方法

by somick 2020. 7. 30.

内部ネットワークを使っているところだと外へ出る時の自分のIPアドレスをわからない場合がある。その場合は以下のコマンドで簡単に確認することが可能。curlにてIP情報教えてくれるサイトから文字列処理するなどの手間がかからなくて便利。

$ curl ipinfo.io
{
  "ip": "182.250.xxx.xxx",
  "hostname": "KD182250xxxxxx.au-net.ne.jp",
  "city": "Kawasaki",
  "region": "Kanagawa",
  "country": "JP",
  "loc": "35.5206,139.7172",
  "org": "AS2516 KDDI CORPORATION",
  "postal": "210-0835"
}

ipinfo.ioに対してcurlを実行するだけ。

上記の例ではAUさんのスマホをテザリングして確認した結果である。

2018年5月31日、以下に「inet-ip.info」に関した内容を追記しました。

上で紹介しているipinfo.ioへブラウザからアクセスするとサイトの使い方について書いてある。APIを使うことによって様々な形式の情報を取得することができそうだけど、残念ながら有料だった。事業に必要なものではないので有料APIは使えない。

ちょっと調べてみたところ「http://inet-ip.info」というサイトを見つけ紹介する。

inet-ip.infoはパスを変更することによって返ってくる値が違う。

❯ curl inet-ip.info/ip
182.249.xxx.xxx

パスとして「/ip」を追加したら?同じくIPアドレスだけが表示されるように見えるけど、最後の改行「\n」が付いてない。

❯ curl inet-ip.info/json
{"IP":"182.249.xxx.xxx","Hostname":"[KD182249xxxxxx.au-net.ne.jp.]","CountryCode":"JP","CountryName":"Japan","Accept":["*/*"],"AcceptEncoding":null,"AcceptLanguage":null,"UserAgent":["curl/7.54.0"],"Via":null,"XForwardedFor":["182.249.xxx.xxx"],"XForwardedPort":null,"XForwardedProto":["http"],"RequestURI":"/json"}

パスとして「/json」ファイルを指定するとその通り改行もインデントもないjson形式で表示してくれる。見づらい!

❯ curl inet-ip.info/json/indent
{
 "IP": "182.249.xxx.xxx",
 "Hostname": "[KD182249xxxxxx.au-net.ne.jp.]",
 "CountryCode": "JP",
 "CountryName": "Japan",
 "Accept": [
  "*/*"
 ],
 "AcceptEncoding": null,
 "AcceptLanguage": null,
 "UserAgent": [
  "curl/7.54.0"
 ],
 "Via": null,
 "XForwardedFor": [
  "182.249.xxx.xxx"
 ],
 "XForwardedPort": null,
 "XForwardedProto": [
  "http"
 ],
 "RequestURI": "/json/indent"
}

見づらいならパスの後ろに「/indent」を追加してあげよう。見やすくなった。

同じやり方でyamlとtoml形式で表示させることも可能。

❯ curl inet-ip.info/yaml
ip: 182.249.xxx.xxx
hostname: '[KD182249xxxxxx.au-net.ne.jp.]'
countrycode: JP
countryname: Japan
accept:
- '*/*'
acceptencoding: []
acceptlanguage: []
useragent:
- curl/7.54.0
via: []
xforwardedfor:
- 182.249.xxx.xxx
xforwardedport: []
xforwardedproto:
- http
requesturi: /yaml
❯ curl inet-ip.info/toml
IP = "182.249.xxx.xxx"
Hostname = "[KD182249xxxxxx.au-net.ne.jp.]"
CountryCode = "JP"
CountryName = "Japan"
Accept = ["*/*"]
UserAgent = ["curl/7.54.0"]
XForwardedFor = ["182.249.xxx.xxx"]
XForwardedProto = ["http"]
RequestURI = "/toml"
 

댓글