http://inet-ip.info/というサイトでは、特定のURLに対してHTTPリクエストを投げることで自分のPCのグローバルIPを取得することができます。
Linuxからcurlコマンドで確認する場合は以下のようにな形になります。
# curl http://inet-ip.info/ip
13.115.7.223
このように応答データとしてIPアドレスだけを返すシンプルなサービスなので、PHPのプログラムからもアクセスできます。
<?php
$globalIp = file_get_contents('http://inet-ip.info/ip');
echo $globalIp . PHP_EOL;
より多くの情報を取得したい場合は、http://inet-ip.info/jsonにアクセスすると良いようです。
<?php
$networkInfos = json_decode(file_get_contents('http://inet-ip.info/json'), true);
foreach ($networkInfos as $key => $value) {
printf( "%16s : %s\n", $key, json_encode($value));
}
上記のスクリプトの実行結果は以下のような出力となります。
IP : "13.115.7.223"
Hostname : "[foo-bar.com.]"
CountryCode : "JP"
CountryName : "Japan"
Accept : null
AcceptEncoding : null
AcceptLanguage : null
UserAgent : null
XForwardedFor : ["13.115.7.223"]
XForwardedPort : ["80"]
XForwardedProto : ["http"]
RequestURI : "\/json"
こちらもおススメ