自分がNAT配下にいる場合に、インターネットから見たグローバルIP(出口で自分が使っているGlobal IP)や、地理情報などを調べる方法について。いくつもツールとかサイトがあるけど、経験上、その中でもifconfig.co
が一番使いやすいと思っている。
例えば、コマンドラインから、curl(もしくはHTTPリクエストが投げられるツール)があれば、すぐに調べられる。 特に、デバッグなどで、最低限のコマンドしか入っていないゲスト・リモート環境であっても、たいてはcurlが入っていることが多いので、そういった場合に重宝する。あと、ブラウザベースでアクセスしても、グラフィカルに同様の情報を参照できるのもありがたい。
あと、今日日ip addr
にまとめられてしまって、使うことは無くなったifconfig
と叩けるのもなつかし良い!
コマンドラインから自分のグローバルIPを調べる
シェルを開いて、
$ curl ifconfig.co
34.95.141.133
ちなみに、IPv6対応なので、IPv6環境だとそのアドレスをちゃんと返ってくる。
### IPv6環境下
$ curl ifconfig.co
240d:1a:3d4:6412:893e:d8e9:2134:0ffc
IPv6環境でもIPv4でのグローバルIPを見たい場合は、curl
コマンドのIPv4オプションを使えば良い。
### IPv6環境下
$ curl -4 ifconfig.co
34.95.141.133
IP以外の情報も返してくれる
パス/json
を加えると地理情報とかも一式返してくれる。
$ curl ifconfig.co/json
{
"ip": "34.95.141.133",
"ip_decimal": 576687493,
"country": "Brazil",
"country_iso": "BR",
"country_eu": false,
"region_name": "Sao Paulo",
"region_code": "SP",
"zip_code": "01323",
"city": "São Paulo",
"latitude": -23.5475,
"longitude": -46.6361,
"time_zone": "America/Sao_Paulo",
"asn": "AS15169",
"asn_org": "GOOGLE",
"hostname": "133.141.95.34.bc.googleusercontent.com",
"user_agent": {
"product": "curl",
"version": "7.64.0",
"raw_value": "curl/7.64.0"
}
}
ASのネットワーク名や緯度軽度なども取得できる。 全部必要なければ、それぞれのパラメータだけをパスにすれば良い。
$ curl ifconfig.co/city
São Paulo
ブラウザアクセスすると見やすく返してくれる
ifconfig.co
はブラウザからアクセスすると、見やすく返してくれる。
(正確には、リクエストヘッダのuser-agent: *curl*
にマッチする場合にのみ、短いテキストで返してくる)