Mengambil semula Alamat IP Pelawat Sebenar Walaupun Penggunaan Proksi
Kod PHP yang biasa digunakan untuk mendapatkan alamat IP pelawat ialah:
<code class="php"><?php echo $_SERVER['REMOTE_ADDR']; ?></code>
Walau bagaimanapun, kaedah ini gagal menangkap IP sebenar apabila proksi sedang dimainkan. Mencari penyelesaian kepada isu ini, mari kita mendalami pendekatan alternatif.
Fungsi PHP Tersuai untuk Penentuan IP
Kod PHP yang disediakan menawarkan penyelesaian yang komprehensif, mempertimbangkan sambungan CloudFlare dan pelbagai faktor lain:
<code class="php">function getUserIP() { // Handle CloudFlare connections if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; $_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; } $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = $_SERVER['REMOTE_ADDR']; if(filter_var($client, FILTER_VALIDATE_IP)) { $ip = $client; } elseif(filter_var($forward, FILTER_VALIDATE_IP)) { $ip = $forward; } else { $ip = $remote; } return $ip; } $user_ip = getUserIP();</code>
Kod ini memberikan alamat IP kepada pembolehubah $user_ip, yang kemudiannya boleh digunakan mengikut keperluan dalam skrip PHP anda.
Atas ialah kandungan terperinci Bagaimana Mendapatkan Alamat IP Pelawat Sebenar Apabila Proksi Digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!