279 文字
1 分
自分のグローバルIPアドレスを1秒で求める方法 (IPv4, IPv6対応)
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/
% curl ifconfig.me
しかし、ifconfig.meがめちゃくちゃ遅い(10秒ぐらいかかる)ので、とりあえず自前で作りました。東京で運用しているので速いです。
IPv4とIPv6に対応しています。
% curl -4 kakunin.teraren.com222.230.108.57% curl -6 kakunin.teraren.com240b:10:2120:f400:e895:161e:8622:1821RESTfulで、いろいろな情報を取得できる。使い方は至って簡単。
単純に、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アドレスを取得
IP=`curl -s kakunin.teraren.com`echo $IPperlでグローバル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/