279 文字
1 分
自分のグローバルIPアドレスを1秒で求める方法 (IPv4, IPv6対応)
2013-04-05
button.css3button {
font-family: 'Droid Sans Mono', monospace;
font-size: 25pt;
color: #333333;
padding: 10px 30px;
background: -moz-linear-gradient(
top,
#cccccc 0%,
#cccccc);
background: -webkit-gradient(
linear, left top, left bottom,
from(#cccccc),
to(#cccccc));
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
border-radius: 30px;
border: 8px solid #1e2424;
-moz-box-shadow:
0px 0px 0px rgba(000,000,000,0),
inset 0px 0px 0px rgba(255,255,255,0);
-webkit-box-shadow:
0px 0px 0px rgba(000,000,000,0),
inset 0px 0px 0px rgba(255,255,255,0);
box-shadow:
0px 0px 0px rgba(000,000,000,0),
inset 0px 0px 0px rgba(255,255,255,0);
text-shadow:
0px 0px 0px rgba(000,000,000,0),
0px 0px 0px rgba(255,255,255,0.3);
}

自分の外部IPアドレスを求めるサービスを発見!
http://ifconfig.me/

Terminal window
% curl ifconfig.me

Screenshot 2013:04 14

しかし、ifconfig.meがめちゃくちゃ遅い(10秒ぐらいかかる)ので、とりあえず自前で作りました。東京で運用しているので速いです。

http://kakunin.teraren.com/

IPv4とIPv6に対応しています。

Terminal window
% curl -4 kakunin.teraren.com
222.230.108.57
Terminal window
% curl -6 kakunin.teraren.com
240b:10:2120:f400:e895:161e:8622:1821

RESTfulで、いろいろな情報を取得できる。使い方は至って簡単。

単純に、curlでGETするだけで返してくれます。

サンプルコードはこんな感じで。

PHPでグローバルIPアドレスを取得#

<?php
$ip = trim(file_get_contents('http://kakunin.teraren.com/'));
var_dump($ip);

RubyでグローバルIPアドレスを取得#

require 'net/http'
p Net::HTTP.get('kakunin.teraren.com').strip!

Python2でグローバルIPアドレスを取得#

import httplib
conn = httplib.HTTPConnection('kakunin.teraren.com')
conn.request( "GET", "/ip" )
print conn.getresponse().read().strip()

shell scriptでグローバルIPアドレスを取得#

Terminal window
IP=`curl -s kakunin.teraren.com`
echo $IP

perlでグローバルIPアドレスを取得#

use LWP::Simple;
$ip = get('http://kakunin.teraren.com/');
$ip =~ s/(^\s+|\s+$)//;
print $ip;
自分のグローバルIPアドレスを1秒で求める方法 (IPv4, IPv6対応)
https://blog.teraren.com/posts/external-ip-address/
作者
Yuki Matsukura
公開日
2013-04-05
ライセンス
CC BY-NC-SA 4.0

コメント