ผมใช้
function getClientIP() {
if (isset($_SERVER)) {
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
return $_SERVER["HTTP_X_FORWARDED_FOR"];
if (isset($_SERVER["HTTP_CLIENT_IP"]))
return $_SERVER["HTTP_CLIENT_IP"];
return $_SERVER["REMOTE_ADDR"];
}
if (getenv('HTTP_X_FORWARDED_FOR'))
return getenv('HTTP_X_FORWARDED_FOR');
if (getenv('HTTP_CLIENT_IP'))
return getenv('HTTP_CLIENT_IP');
return getenv('REMOTE_ADDR');
}
echo getClientIP();
ปรากฎว่ามันออกมาเป็น ::1 ครับ คิดว่ามันน่าจะใช้ได้กับ ipv4 เท่านั้น แล้วถ้าเป็น ipv6 ต้องเพิ่มเติมโค้ดยังไงครับ
เกี่ยวกับ php REMOTE_ADDR ครับ
function getClientIP() {
if (isset($_SERVER)) {
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
return $_SERVER["HTTP_X_FORWARDED_FOR"];
if (isset($_SERVER["HTTP_CLIENT_IP"]))
return $_SERVER["HTTP_CLIENT_IP"];
return $_SERVER["REMOTE_ADDR"];
}
if (getenv('HTTP_X_FORWARDED_FOR'))
return getenv('HTTP_X_FORWARDED_FOR');
if (getenv('HTTP_CLIENT_IP'))
return getenv('HTTP_CLIENT_IP');
return getenv('REMOTE_ADDR');
}
echo getClientIP();
ปรากฎว่ามันออกมาเป็น ::1 ครับ คิดว่ามันน่าจะใช้ได้กับ ipv4 เท่านั้น แล้วถ้าเป็น ipv6 ต้องเพิ่มเติมโค้ดยังไงครับ