Mendapatkan Alamat IP Pelanggan dalam PHP: Menyelidiki Percanggahan
Walaupun penggunaan meluas $_SERVER['REMOTE_ADDR'] untuk mendapatkan semula alamat IP pelanggan, kebimbangan telah timbul mengenai ketepatannya. Untuk menangani isu ini, mari kita teroka pendekatan alternatif menggunakan pembolehubah pelayan tambahan.
Menggunakan getenv()
Fungsi getenv() membenarkan akses kepada pembolehubah persekitaran, seperti alamat IP pelanggan:
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'); // ... Further checks for other server variables omitted else $ipaddress = 'UNKNOWN'; return $ipaddress; }
Menggunakan $_SERVER
Kaedah alternatif melibatkan mengakses pembolehubah pelayan secara terus melalui tatasusunan $_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']; // ... Further checks for other server variables omitted else $ipaddress = 'UNKNOWN'; return $ipaddress; }
Mengapa Percanggahan?
Perbezaan antara alamat IP yang diperoleh melalui pelbagai kaedah mungkin timbul disebabkan oleh faktor-faktor tersebut sebagai:
Untuk memastikan ketepatan tertinggi, adalah disyorkan untuk mempertimbangkan berbilang pembolehubah pelayan semasa menentukan alamat IP pelanggan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Alamat IP Pelanggan dengan Tepat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!