Untuk mempelajari ‘Dapatkan Alamat IP dalam PHP’, mula-mula, kami akan mengkaji Alamat IP. Alamat IP atau alamat Protokol Internet ialah alamat yang merupakan alamat atau label berangka yang dimiliki oleh setiap sistem atau peranti yang disambungkan ke rangkaian. Alamat IP diberikan kepada setiap peranti sedemikian. Peranti ini menggunakan protokol internet untuk sebarang jenis komunikasi.
IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Di bawah mata Terangkan versi IP:
Atas sebab keselamatan, tapak mengumpul alamat IP pelawat tapak mereka. Terdapat cara mudah untuk mendapatkan alamat ini dalam PHP. Terdapat tatasusunan khusus dalam PHP yang membantu dan mengembalikan alamat IP mesin anda. Tatasusunan dikenali sebagai '$_SERVER'. Ia mengandungi maklumat tentang laluan, pengepala dan lokasi skrip. Pelayan web mencipta maklumat yang diperlukan untuk tatasusunan $_SERVER. Kadangkala pelayan ini tidak mencipta atau menyediakan semua maklumat yang diperlukan oleh tatasusunan, mereka mungkin meninggalkan sebahagian daripadanya. Oleh itu terdapat satu lagi tatasusunan yang boleh digunakan dalam kes sedemikian. Ia ditulis sebagai, 'SERVER_ADDR'. Tatasusunan ini mengembalikan alamat IP pelayan di mana skrip sedang dijalankan.
Di bawah ialah contoh yang digunakan untuk mendapatkan alamat IP dalam php:
Cara paling mudah ialah menggunakan $_SERVER dengan ‘REMOTE_ADDR’, ia akan mengembalikan alamat IP pengguna yang sedang melihat halaman tersebut.
Kod:
<?php echo 'User IP - '.$_SERVER['REMOTE_ADDR']; ?>
Output:
Kaedah lain, dipanggil ‘SERVER_ADDR’, yang juga digunakan untuk mendapatkan semula alamat IP pelayan.
Kod:
<?php // PHP program to retrieve server’s Internet Protocol address // Creating a variable to store the server address $ip_server = $_SERVER['SERVER_ADDR']; // Displaying the retrieved address echo "Server IP Address is: $ip_server"; ?>
Output:
Penjelasan kepada atur cara di atas: Tatasusunan contoh di atas [$_SERVER] berguna ialah mesin tidak dilampirkan melalui proksi. Jika mesin disambungkan ke internet melalui atau melalui pelayan proksi, $_SERVER[‘REMOTE_ADDR’] dalam PHP tidak mengembalikan alamat IP yang betul. Ia hanya mengembalikan alamat IP pelayan proksi dan mesin pengguna atau pelanggan. Dalam situasi ini, kaedah lain digunakan untuk mendapatkan semula alamat yang betul.
Contoh berikut digunakan untuk mengembalikan alamat IP yang betul dan sebenar walaupun mesin itu bersembunyi di sebalik pelayan proksi. Ia menggunakan sepasang tambahan pembolehubah SERVER yang tersedia untuk mendapatkan alamat IP yang tepat bagi sistem atau mesin pelanggan. Ia dikenali sebagai HTTP_CLIENT_IP dan HTTP_X_FORWARDED_FOR.
Kod:
<?php function RetrieveUserIP() { if(!empty($_SERVER['HTTP_CLIENT_IP'])) { $address=$_SERVER['HTTP_CLIENT_IP']; } elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $address=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $address=$_SERVER['REMOTE_ADDR']; } return $address; } echo 'User IP Address is'.RetrieveUserIP(); ?>
Output:
Jika seseorang ingin memahami aliran tindakan kod di atas, seseorang boleh merujuk carta alir berikut untuk perkara yang sama.
Penjelasan kepada atur cara di atas: Contoh di atas untuk mendapatkan semula alamat IP menggunakan dua pembolehubah, [‘HTTP_CLIENT_IP’] dan [‘HTTP_X_FORWARDED_FOR’]. Dalam program ini, kami membuat percubaan pertama kami untuk mengeluarkannya terus dari mesin menggunakan HTTP_CLIENT_IP. Jika itu tidak tersedia, kami cuba untuk 'dimajukan untuk' IP menggunakan HTTP_X_FORWARDD_FOR. Apabila kedua-dua syarat menjadi batal, kami cuba mendapatkan alamat IP menggunakan pembolehubah REMOTE_ADDR.
Di bawah mata harus diingat untuk Mendapatkan alamat IP dalam php:
1. Bahawa apabila kami menjalankan kod di atas, alamat IP yang dikembalikan dipaparkan sebagai::1. Ini dikenali sebagai alamat gelung balik yang sebenarnya diwakili sebagai 127 kali sifar diikuti dengan 1 iaitu (0000…. 127 kali….1). Jika kita menulisnya, ia akan ditulis sebagai:
2. Tetapi dalam IPv6, kita boleh mewakili label besar ini dalam bentuk ringkas. Jadi jika terdapat semua sifar dalam satu blok, ia boleh digantikan dengan sifar tunggal. Jadi apabila mengikut peraturan di atas, ia menjadi: 0:0:0:0:0:0:0:0001;
3. Sekali lagi, sifar boleh dihapuskan dan kita tinggal dengan:: 0001
4. Yang sekali lagi dikurangkan kepada ':: 1', dengan itu keluarannya.
Penjelasan kepada kod di atas: Jika ia dibuat untuk dijalankan, mereka mungkin tidak memberikan sebarang output atau mungkin mengembalikan ralat masa jalan kerana domain peribadi tidak memberikan alamat protokol internet mereka. Manakala jika kod di atas dilaksanakan pada pelayan tempatan atau hos tempatan, seperti kami telah menggunakan pelayan WAMP, ia akan memberikan output mengikut versi IP, iaitu, jika ia adalah IPv4, alamat protokol Internet akan dipaparkan sebagai '127:0:0:1' manakala jika ia adalah IPv6, alamat protokol internet akan dipaparkan seperti di atas, bahawa ia, ':: 1'
Atas ialah kandungan terperinci Dapatkan Alamat IP dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!