phpでIPアドレスを取得する方法はたくさんありますが、以下では、Linuxコマンドを使用してIPアドレスを取得し、それを配列に変換して出力する方法を紹介します。また、phpのIPアドレス処理の一般的な例もいくつか紹介します。
PHP サーバーの IP アドレスを取得
PHP を使用して ifconfig を実行し、Linux サーバーの IP を取得し、配列として出力します。コードは次のとおりです。
コードをコピー | |
function getServerIp(){ // ifconfig を使用してサーバー IP を読み取り、配列として出力します $ss = exec('/sbin/ifconfig | sed -n 's/^ *.*addr:([0-9.]{7,}) .*$/1/p'',$arr); $arr を返します } $ips=getServerIp(); foreach($ips as $k=>$v){//IP をフィルタリングします if(substr($v,0,3)=='127' || substr($v,0,3)=='10.' || substr($v,0,7)=='192.168' | | substr($v,0,6)=='172.16'){ unset($ips[$k]); } } shuffle($ips);//並べ替え print_r($ips); ?> |
phpでIPアドレスを取得する例
コードをコピー | |
関数 GetIP(){ if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $cip = $_SERVER["HTTP_CLIENT_IP"]; } elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){ $cip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } elseif(!empty($_SERVER["REMOTE_ADDR"])){ $cip = $_SERVER["REMOTE_ADDR"]; } 他{ $cip = "取得できません!"; } $cip を返します; } エコーGetIP(); ?> |
コードをコピー | |||||
If (isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP']!='unknown') { $ip = $_SERVER['HTTP_CLIENT_IP'] elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']!='unknown') { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } $ip を返します。 } PHP で IP の場所を取得します (Sina API を呼び出して IP の場所を取得します)
|