Mendapatkan Alamat IP Pelanggan dalam PHP
Sebelum meneroka kaedah untuk mendapatkan alamat IP pelanggan, adalah penting untuk memahami sebab hanya menggunakan $_SERVER[ 'REMOTE_ADDR'] mungkin membawa kepada hasil yang salah. Proksi, tembok api atau perantara lain boleh mengubah alamat IP asal.
Untuk menangani isu ini, berikut ialah pendekatan alternatif:
Menggunakan GETENV()
Fungsi getenv() membolehkan kami mengakses pembolehubah persekitaran. Fungsi berikut menggunakannya:
// Function to get client IP address function get_client_ip() { $ipaddress = ''; if (getenv('HTTP_CLIENT_IP')) $ipaddress = getenv('HTTP_CLIENT_IP'); else if (getenv('HTTP_X_FORWARDED_FOR')) $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); //... (Other conditions omitted for brevity) else $ipaddress = 'UNKNOWN'; return $ipaddress; }
Menggunakan $_SERVER
PHP juga menyediakan $_SERVER superglobal untuk mengakses pembolehubah pelayan. Berikut ialah pelaksanaan serupa yang menggunakannya:
// Function to get client IP address function get_client_ip() { $ipaddress = ''; if (isset($_SERVER['HTTP_CLIENT_IP'])) $ipaddress = $_SERVER['HTTP_CLIENT_IP']; else if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; //... (Other conditions omitted for brevity) else $ipaddress = 'UNKNOWN'; return $ipaddress; }
Kedua-dua fungsi ini mempertimbangkan berbilang pembolehubah pelayan untuk mendapatkan alamat IP paling tepat yang tersedia. Mereka mengutamakan pembolehubah seperti HTTP_CLIENT_IP dan HTTP_X_FORWARDED_FOR, yang memberikan kebolehpercayaan yang lebih tinggi.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Alamat IP Pelanggan dengan Amanah dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!