Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mendapatkan Alamat IP Pelanggan dengan Amanah dalam PHP?

Bagaimana untuk Mendapatkan Alamat IP Pelanggan dengan Amanah dalam PHP?

DDD
DDDasal
2024-12-18 07:19:11307semak imbas

How to Reliably Get a Client's IP Address in PHP?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn