Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Dapatkan Alamat IP dalam PHP

Dapatkan Alamat IP dalam PHP

PHPz
PHPzasal
2024-08-29 13:07:16457semak imbas

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-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Versi IP

Di bawah mata Terangkan versi IP:

  • Versi IP ditakrifkan mengikut bit label protokol internet. Sebagai contoh, IPv4, yang merupakan versi terdahulu mentakrifkan alamat protokol internet nombor 32-bit. Dengan pertumbuhan internet, IPv6 wujud yang mentakrifkan label IP nombor 128-bit. IPv6 digunakan sejak 1995 hingga hari ini. Alamat Protokol Internet ditulis dalam bahasa yang boleh difahami manusia. Contoh IPv4 adalah seperti berikut, 170.17.260.2 dan contoh untuk IPv6 ialah 2001:db8:2:1434:1:587:5:2.
  • Ruang yang diperoleh oleh alamat protokol internet diurus secara global. Pendaftaran yang dipanggil Internet Assigned Numbers Authority bersama-sama dengan lima pendaftaran serantau yang lain membolehkan pengurusan ruang untuk alamat protokol internet. IANA bertanggungjawab untuk memperuntukkan dan mengurus ruang alamat protokol internet kepada semua pengguna akhir dan penyedia internet lain di kawasan atau wilayah yang ditetapkan mereka. Begitu juga, semua peranti yang disambungkan ke rangkaian pembekal perkhidmatan internet diberikan alamat protokol internet yang unik.
  • Terdapat alamat protokol internet statik yang tidak kerap berubah, ia disediakan kepada pelayan. Pembekal perkhidmatan internet menyediakan alamat protokol internet yang khusus dan unik kepada mesin yang menggunakan modem. Alamat IP itu unik untuk sesi dan mungkin berubah untuk sesi seterusnya.

Mengenal pasti dan Mengembalikan Alamat IP dalam PHP

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.

Kaedah Digunakan untuk Mendapatkan Alamat IP dalam PHP

Di bawah ialah contoh yang digunakan untuk mendapatkan alamat IP dalam php:

Contoh #1

Cara paling mudah ialah menggunakan $_SERVER dengan ‘REMOTE_ADDR’, ia akan mengembalikan alamat IP pengguna yang sedang melihat halaman tersebut.

  • Contoh menggunakan [‘REMOTE_ADDR’] untuk mengenal pasti alamat IP pelayan dalam PHP.

Kod:

<?php
echo 'User IP - '.$_SERVER['REMOTE_ADDR'];
?>

Output:

Dapatkan Alamat IP dalam PHP

Contoh #2

Kaedah lain, dipanggil ‘SERVER_ADDR’, yang juga digunakan untuk mendapatkan semula alamat IP pelayan. 

  • Contoh menggunakan [‘SERVER_ADDR’] untuk mengenal pasti alamat IP pelayan dalam PHP.

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:

Dapatkan Alamat IP dalam PHP

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 #3

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.

  • Contoh menggunakan [‘HTTP_CLIENT_IP’] dan [‘HTTP_X_FORWARDED_FOR’] untuk mengenal pasti alamat IP pelayan dalam PHP.

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:

Dapatkan Alamat IP dalam PHP

Jika seseorang ingin memahami aliran tindakan kod di atas, seseorang boleh merujuk carta alir berikut untuk perkara yang sama.

Dapatkan Alamat IP dalam PHP

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.

Mata yang Perlu Diingat

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:

Dapatkan Alamat IP dalam PHP

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;

Dapatkan Alamat IP dalam PHP

3. Sekali lagi, sifar boleh dihapuskan dan kita tinggal dengan:: 0001

Dapatkan Alamat IP dalam PHP

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!

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
Artikel sebelumnya:Penimbalan Output PHPArtikel seterusnya:Penimbalan Output PHP