Dapatkan semula Alamat IP Pelanggan dalam PHP
superglobal $_SERVER PHP menyediakan kaedah untuk mendapatkan semula alamat IP pelawat tapak web. Walau bagaimanapun, alamat IP yang salah mungkin dikembalikan menggunakan pendekatan $_SERVER['REMOTE_ADDR'] konvensional. Percanggahan ini boleh dikaitkan dengan pelbagai faktor, termasuk pelayan proksi dan pengimbang beban.
Untuk mendapatkan alamat IP yang tepat, pertimbangkan pembolehubah pelayan alternatif. Dua fungsi berikut boleh ditukar ganti dan menunjukkan cara untuk berbuat demikian:
Menggunakan getenv():
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'); else if(getenv('HTTP_X_FORWARDED')) $ipaddress = getenv('HTTP_X_FORWARDED'); else if(getenv('HTTP_FORWARDED_FOR')) $ipaddress = getenv('HTTP_FORWARDED_FOR'); else if(getenv('HTTP_FORWARDED')) $ipaddress = getenv('HTTP_FORWARDED'); else if(getenv('REMOTE_ADDR')) $ipaddress = getenv('REMOTE_ADDR'); else $ipaddress = 'UNKNOWN'; return $ipaddress; }
Menggunakan $_SERVER:
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']; else if(isset($_SERVER['HTTP_X_FORWARDED'])) $ipaddress = $_SERVER['HTTP_X_FORWARDED']; else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) $ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; else if(isset($_SERVER['HTTP_FORWARDED'])) $ipaddress = $_SERVER['HTTP_FORWARDED']; else if(isset($_SERVER['REMOTE_ADDR'])) $ipaddress = $_SERVER['REMOTE_ADDR']; else $ipaddress = 'UNKNOWN'; return $ipaddress; }
Fungsi ini mengutamakan pilihan alamat IP yang paling boleh dipercayai yang terdapat dalam pembolehubah pelayan, memastikan perwakilan tepat alamat IP pelanggan.
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Alamat IP Pelanggan dengan Amanah dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!