クライアントの実際の IP アドレスを取得し、その値を mysql DB に保存して取得する方法の簡単な例を次に示します。
//Test if it is a shared client
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip=$_SERVER['REMOTE_ADDR'];
}
//The value of $ip at this point would look something like: "192.0.34.166"
$ip = ip2long($ip);
//The $ip would now look something like: 1073732954
クライアントの実際の IP アドレスが INT 形式に変換されたので、通常どおり DB に書き込むことができます。
$sql = "INSERT INTO user(ip) VALUES('$ip')";
$dbQuery = mysql_query($sql,$dbLink);
このリンクの詳細: MySQL に IP アドレスを保存する最良の方法
追加情報: SQL インジェクションからコードを安全にするため。PDOまたはMYSQLIを使用する
PDO 拡張機能の使用例:
<?php
$stmt = $dbh->prepare("INSERT INTO user(ip) VALUES(?)");
$stmt->bindParam(1, $ip);
$stmt->execute();
?>