Rumah pembangunan bahagian belakang masalah PHP Bagaimana untuk menukar nombor integer kepada alamat ip dalam php

Bagaimana untuk menukar nombor integer kepada alamat ip dalam php

Apr 18, 2023 am 09:47 AM

Dalam bidang pembangunan web, kita selalunya perlu menukar nombor integer kepada alamat IP, seperti merekodkan IP berdaftar pengguna semasa mendaftar, atau semasa menganalisis log akses web, kita perlu menukar alamat IP kepada integer untuk pertanyaan , dsb. Sebagai tindak balas kepada keperluan ini, PHP menyediakan fungsi ip2long() dan long2ip() yang mudah.

Fungsi ip2long() menukarkan alamat IPv4 kepada nombor integer panjang (integer bertanda 32-bit), manakala fungsi long2ip() menukar nombor integer panjang kepada alamat IPv4.

$ip = '192.168.0.1';
$long = ip2long($ip);
gema $long.PHP_EOL; // Output: -1062731775

$long = -1062731775;
$ip = long2ip($long);
gema $ip.PHP_EOL; // Output: 192.168.0.1
?>

Walau bagaimanapun, perlu diingatkan bahawa kedua-dua fungsi ini hanya menyokong alamat IPv4 Jika anda perlu mengendalikan alamat IPv6, anda perlu menggunakan kaedah lain untuk mencapainya. Selain itu, PHP menggunakan susunan bait rangkaian (big-endian) apabila memproses alamat IP dan penukaran nombor integer.

Turutan bait rangkaian merujuk kepada susunan bait yang dinyatakan dalam timbunan protokol TCP/IP, dan bait disusun dalam cara yang besar-endian. Endian besar yang dipanggil bermaksud bait tertib tinggi didahulukan dan bait tertib rendah didahulukan. Sebagai contoh, integer 0x12345678 diwakili sebagai 0x12, 0x34, 0x56, 0x78 dalam susunan bait rangkaian.

Bagaimana untuk menukar alamat ip kepada integer?

Untuk menukar alamat ip kepada integer, anda boleh melakukannya dengan cara berikut:

fungsi ip2long_v2($ip) {

$ipArr = explode(".", $ip); // 将IP地址拆分成数组
$num = 0;
foreach ($ipArr as $k => $v) {
    $num = $num << 8; // 左移8位 
    $num += intval($v); // 叠加 
}
return $num;
Salin selepas log masuk

}
?>

Fungsi ini membahagikan alamat IP kepada tatasusunan, kemudian menganjak dan menindih setiap digit, dan akhirnya menukarkannya kepada integer.

Bagaimana untuk menukar integer kepada alamat IP?

Untuk menukar integer kepada alamat IP, anda boleh melakukannya dengan cara berikut:

function long2ip_v2($long) {

$arr = array(
    ($long & 0xff000000) >> 24,
    ($long & 0x00ff0000) >> 16,
    ($long & 0x0000ff00) >> 8,
    ($long & 0x000000ff)
);
return implode('.', $arr); 

}
?>

Fungsi ini menukar integer kepada tatasusunan selepas operasi bitwise, dan kemudian menyambung tatasusunan ke alamat ip.

Ringkasan

PHP menyediakan fungsi ip2long() dan long2ip() yang mudah, yang boleh menukar alamat IP dan integer kepada dan daripada satu sama lain. Walau bagaimanapun, perlu diingatkan bahawa kedua-dua fungsi ini hanya menyokong alamat IPv4 dan menggunakan susunan bait rangkaian. Jika anda perlu mengendalikan alamat IPv6, anda perlu menggunakan kaedah lain untuk mencapainya.

Atas ialah kandungan terperinci Bagaimana untuk menukar nombor integer kepada alamat ip dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1670
14
Tutorial PHP
1276
29
Tutorial C#
1256
24