Selesai: hanya ip saya

Kemaskini terakhir: 09/19/2023

Sudah tentu, saya faham keperluan anda. Begini rupa artikel anda tentang "Pengendalian PHP dan Alamat IP":

Bekerja dengan alamat IP dalam dunia pembangunan web adalah amalan biasa, terutamanya apabila berurusan dengan penjejakan pengguna, menyediakan pengesahan berasaskan IP dan banyak lagi. Pembangun tahu bahawa terdapat pelbagai cara untuk mendapatkan alamat IP klien, tetapi terdapat beberapa kerumitan yang terlibat apabila membangunkan di sebalik proksi, kerana ia mungkin mengembalikan IP pelayan dan bukannya IP klien. Di sinilah kuasa PHP memainkan peranan, menyediakan ciri terbina dalam untuk mengendalikan situasi sedemikian dengan berkesan.

Memahami Pengalamatan IP dan PHP

Alamat Protokol Internet (atau Alamat IP) ialah rentetan nombor unik yang dipisahkan oleh noktah yang mengenal pasti setiap komputer yang menggunakan Protokol Internet untuk berkomunikasi melalui rangkaian. Dalam PHP, $_SERVER ialah pembolehubah superglobal, yang menyimpan maklumat tentang pengepala, lokasi skrip dan laluan. Untuk mendapatkan alamat IP sistem, anda boleh terus menggunakan $_SERVER['REMOTE_ADDR'], tetapi ia mungkin tidak selalunya memberikan hasil yang dijangkakan, terutamanya dalam kes di mana klien berada di belakang pelayan proksi.

Penyelesaian: Pengesanan Alamat IP Tepat dalam PHP

Untuk mendapatkan alamat IP pelanggan yang tepat, walaupun di belakang pelayan proksi, kami boleh menggunakan pengepala HTTP_CLIENT_IP dan HTTP_X_FORWARDED_FOR yang mengandungi alamat IP asal klien. Kita perlu menyemak pengepala ini terlebih dahulu untuk memastikan bahawa alamat IP tidak ditipu oleh pengguna yang berniat jahat.

Berikut ialah pecahan langkah demi langkah penyelesaian kod PHP.

<?php
function getUserIP(){
    if(!empty($_SERVER&#91;'HTTP_CLIENT_IP'&#93;)){
        // IP address from shared Internet
        $ip = $_SERVER&#91;'HTTP_CLIENT_IP'&#93;;
    }elseif(!empty($_SERVER&#91;'HTTP_X_FORWARDED_FOR'&#93;)){
        // IP address from proxy server
        $ip = $_SERVER&#91;'HTTP_X_FORWARDED_FOR'&#93;;
    }else{
        // IP address from remote address
        $ip = $_SERVER&#91;'REMOTE_ADDR'&#93;;
    }
    return $ip;
}
$userIP = getUserIP();
echo "User's IP: " . $userIP;
?>

Menjelaskan Kod PHP

Fungsi getUserIp dalam PHP bertujuan untuk mendapatkan alamat IP klien dengan menyemak pengepala HTTP_CLIENT_IP terlebih dahulu. Ini selalunya mengandungi alamat IP asal klien apabila menggunakan perkhidmatan Internet kongsi. Jika pengepala ini kosong, ia kemudiannya akan menyemak pengepala HTTP_X_FORWARDED_FOR, yang juga boleh menyimpan alamat IP asal klien yang dihantar oleh pelayan proksi.

  • Jika kedua-dua pengepala kosong, ia akan kembali kepada $_SERVER['REMOTE_ADDR'] yang mengembalikan alamat IP pelayan.
  • Selepas mendapat alamat IP, kod itu kemudian mencetaknya dengan pernyataan gema.

Kaedah ini adalah salah satu cara yang lebih dipercayai untuk mendapatkan alamat IP pengguna dalam PHP. Walau bagaimanapun, ingat masih mengambil langkah berjaga-jaga untuk melindungi daripada penipuan IP. Sentiasa bersihkan atau sahkan alamat IP sebagai sebahagian daripada protokol keselamatan anda.

Related posts: