Konversi ipv6 ke ipv4 php

IPLib adalah pustaka alamat IP dan manipulasi subnet yang modern, kompatibel dengan PSR, digerakkan oleh pengujian. Ini mengimplementasikan primitif untuk menangani alamat IPv4 dan IPv6, serta rentang IP (subnet), dalam format CIDR (seperti

$address = \IPLib\Address\IPv6::parseString('::1');
0 atau
$address = \IPLib\Address\IPv6::parseString('::1');
1) dan dalam format pola (seperti
$address = \IPLib\Address\IPv6::parseString('::1');
2 atau
$address = \IPLib\Address\IPv6::parseString('::1');
3)

Persyaratan

IPLib memiliki persyaratan yang sangat mendasar seperti

  • Bekerja dengan versi PHP yang lebih besar dari 5. 3. 3 (PHP5. 3. x, 5. 4. x, 5. 5. x, 5. 6. x, 7. x, dan 8. x didukung penuh)
  • Tidak ada ketergantungan eksternal
  • Tidak diperlukan konfigurasi PHP khusus (ya, ini akan selalu berfungsi meskipun PHP belum dibangun dengan dukungan IPv6. )

Instalasi

Instalasi manual

Unduh versi terbaru, unzip dan tambahkan baris ini di file PHP kami

require_once 'path/to/iplib/ip-lib.php';
_

Instalasi dengan Composer

Cukup jalankan

composer require mlocati/ip-lib

atau tambahkan baris ini ke file

$address = \IPLib\Address\IPv6::parseString('::1');
4 Anda

"require": {
    "mlocati/ip-lib": "^1"
}

Penggunaan sampel

Mengurai alamat

Untuk mengurai alamat IPv4

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_

Untuk mengurai alamat IPv6

$address = \IPLib\Address\IPv6::parseString('::1');

Untuk mengurai alamat dalam format apa pun (IPv4 atau IPv6)

$address = \IPLib\Factory::parseAddressString('::1');
$address = \IPLib\Factory::parseAddressString('127.0.0.1');

Dapatkan alamat berikutnya/sebelumnya

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::
echo (string) $address->getPreviousAddress();

// This will print ::2
echo (string) $address->getNextAddress();

Dapatkan alamat pada offset yang ditentukan

Untuk alamat

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));

Untuk rentang

$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));

Parsing rentang alamat IP

Untuk mengurai rentang subnet (CIDR).

$range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
$range = \IPLib\Range\Subnet::parseString('::1/128');

Untuk mengurai rentang pola (notasi bintang).

composer require mlocati/ip-lib
0

Untuk mengurai alamat sebagai rentang

composer require mlocati/ip-lib
1

Untuk mem-parsing rentang dalam format apa pun

composer require mlocati/ip-lib
2

Ambil rentang dari batas-batasnya

Anda dapat menghitung rentang terkecil yang terdiri dari dua alamat

composer require mlocati/ip-lib
_3

Anda juga dapat menghitung daftar rentang yang menggambarkan dengan tepat semua alamat di antara dua alamat

composer require mlocati/ip-lib
_4

Mengambil batas rentang

composer require mlocati/ip-lib
5

Format alamat dan rentang

Alamat dan rentang IP memiliki metode

$address = \IPLib\Address\IPv6::parseString('::1');
5 yang dapat Anda gunakan untuk mengambil representasi tekstual

composer require mlocati/ip-lib
_6

Saat bekerja dengan IPv6, Anda mungkin menginginkan representasi alamat yang lengkap (diperluas). Dalam hal ini, cukup gunakan parameter

$address = \IPLib\Address\IPv6::parseString('::1');
_6 untuk metode
$address = \IPLib\Address\IPv6::parseString('::1');
5

composer require mlocati/ip-lib
_7

Objek alamat dan jangkauan mengimplementasikan metode

$address = \IPLib\Address\IPv6::parseString('::1');
_8, yang memanggil metode
$address = \IPLib\Address\IPv6::parseString('::1');
9. Jadi, jika Anda menginginkan representasi string (pendek) dari suatu objek, Anda dapat melakukan salah satu dari yang berikut ini

composer require mlocati/ip-lib
_8

Periksa apakah alamat terdapat dalam rentang

Semua jenis jangkauan menawarkan metode

$address = \IPLib\Factory::parseAddressString('::1');
$address = \IPLib\Factory::parseAddressString('127.0.0.1');
_0, dan semua jenis alamat IP menawarkan metode
$address = \IPLib\Factory::parseAddressString('::1');
$address = \IPLib\Factory::parseAddressString('127.0.0.1');
1. Anda dapat memanggil mereka untuk memeriksa apakah suatu alamat terdapat dalam suatu rentang

composer require mlocati/ip-lib
_9

Harap diperhatikan bahwa jika alamatnya adalah IPv4 dan jangkauannya adalah IPv6 (atau sebaliknya), hasilnya akan selalu

$address = \IPLib\Factory::parseAddressString('::1');
$address = \IPLib\Factory::parseAddressString('127.0.0.1');
2

Periksa apakah rentang berisi rentang lain

Semua jenis jangkauan menawarkan metode

$address = \IPLib\Factory::parseAddressString('::1');
$address = \IPLib\Factory::parseAddressString('127.0.0.1');
3. Anda dapat memanggil mereka untuk memeriksa apakah rentang alamat sepenuhnya berisi rentang lain

"require": {
    "mlocati/ip-lib": "^1"
}
0

Mendapatkan jenis alamat IP

Jika Anda ingin mengetahui apakah suatu alamat berada dalam jaringan pribadi, atau apakah itu IP publik, atau apa pun yang Anda inginkan, Anda dapat menggunakan metode

$address = \IPLib\Factory::parseAddressString('::1');
$address = \IPLib\Factory::parseAddressString('127.0.0.1');
4

"require": {
    "mlocati/ip-lib": "^1"
}
1

Nilai yang paling menonjol dari tipe rentang adalah

  • $address = \IPLib\Factory::parseAddressString('::1');
    $address = \IPLib\Factory::parseAddressString('127.0.0.1');
    _5 jika alamat semuanya nol (
    $address = \IPLib\Factory::parseAddressString('::1');
    $address = \IPLib\Factory::parseAddressString('127.0.0.1');
    6 atau
    $address = \IPLib\Factory::parseAddressString('::1');
    $address = \IPLib\Factory::parseAddressString('127.0.0.1');
    7)
  • $address = \IPLib\Factory::parseAddressString('::1');
    $address = \IPLib\Factory::parseAddressString('127.0.0.1');
    _8 jika alamatnya adalah localhost (biasanya
    $address = \IPLib\Factory::parseAddressString('::1');
    $address = \IPLib\Factory::parseAddressString('127.0.0.1');
    9 atau
    $address = \IPLib\Factory::parseAddressString('::1');
    
    // This will print ::
    echo (string) $address->getPreviousAddress();
    
    // This will print ::2
    echo (string) $address->getNextAddress();
    0)
  • $address = \IPLib\Factory::parseAddressString('::1');
    
    // This will print ::
    echo (string) $address->getPreviousAddress();
    
    // This will print ::2
    echo (string) $address->getNextAddress();
    _1 jika alamatnya ada di jaringan lokal (misalnya
    $address = \IPLib\Factory::parseAddressString('::1');
    
    // This will print ::
    echo (string) $address->getPreviousAddress();
    
    // This will print ::2
    echo (string) $address->getNextAddress();
    2 atau
    $address = \IPLib\Factory::parseAddressString('::1');
    
    // This will print ::
    echo (string) $address->getPreviousAddress();
    
    // This will print ::2
    echo (string) $address->getNextAddress();
    3)
  • $address = \IPLib\Factory::parseAddressString('::1');
    
    // This will print ::
    echo (string) $address->getPreviousAddress();
    
    // This will print ::2
    echo (string) $address->getNextAddress();
    _4 jika alamat tersebut untuk penggunaan umum (misalnya
    $address = \IPLib\Factory::parseAddressString('::1');
    
    // This will print ::
    echo (string) $address->getPreviousAddress();
    
    // This will print ::2
    echo (string) $address->getNextAddress();
    5 atau
    $address = \IPLib\Factory::parseAddressString('::1');
    
    // This will print ::
    echo (string) $address->getPreviousAddress();
    
    // This will print ::2
    echo (string) $address->getNextAddress();
    6)

Mendapatkan jenis rentang alamat IP

Jika Anda ingin mengetahui jenis rentang alamat, Anda dapat menggunakan metode

$address = \IPLib\Factory::parseAddressString('::1');
$address = \IPLib\Factory::parseAddressString('127.0.0.1');
4

"require": {
    "mlocati/ip-lib": "^1"
}
2

Perhatikan bahwa jika rentang mencakup beberapa jenis rentang, Anda akan mendapatkan NULL sebagai jenis rentang

"require": {
    "mlocati/ip-lib": "^1"
}
3

Konversi alamat IP

Pustaka ini mendukung konversi IPv4 ke/dari alamat IPv6 menggunakan notasi 6to4 atau

"require": {
    "mlocati/ip-lib": "^1"
}
4

Mengubah rentang IP

Pustaka ini mendukung rentang IPv4/IPv6 dalam format pola (mis.

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::
echo (string) $address->getPreviousAddress();

// This will print ::2
echo (string) $address->getNextAddress();
8) dan dalam format CIDR/subnet (mis.
$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::
echo (string) $address->getPreviousAddress();

// This will print ::2
echo (string) $address->getNextAddress();
_9), dan menawarkan cara untuk mengkonversi antara dua format

"require": {
    "mlocati/ip-lib": "^1"
}
5

Harap perhatikan bahwa semua jenis rentang menerapkan metode

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
0 dan
$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
1

Mendapatkan subnet mask untuk rentang IPv4

Anda dapat menggunakan

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
_2 untuk mendapatkan subnet mask untuk rentang IPv4

"require": {
    "mlocati/ip-lib": "^1"
}
6

Mendapatkan ukuran rentang

Anda dapat menggunakan

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
_3 untuk mendapatkan jumlah alamat yang terdapat dalam rentang IP ini

"require": {
    "mlocati/ip-lib": "^1"
}
7

Mendapatkan alamat pencarian DNS terbalik

Untuk melakukan kueri DNS terbalik, Anda perlu menggunakan format khusus dari alamat IP

Anda dapat menggunakan metode

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
_4 dari instance alamat IP untuk mengambilnya dengan mudah

"require": {
    "mlocati/ip-lib": "^1"
}
_8

Untuk mem-parsing alamat dalam format pencarian DNS terbalik, Anda dapat menggunakan flag

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
5 saat mengurai string

"require": {
    "mlocati/ip-lib": "^1"
}
_9

Anda juga dapat menggunakan

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
_4 untuk rentang IP. Dalam hal ini, hasilnya adalah array string

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_0

Menggunakan basis data

Paket ini menawarkan fitur yang hebat. Anda dapat menyimpan rentang alamat dalam tabel database, dan memeriksa apakah alamat terdapat dalam salah satu rentang yang disimpan dengan kueri sederhana

Untuk menyimpan rentang, Anda perlu menyimpan jenis alamat (untuk IPv4 adalah

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
7, untuk IPv6 adalah
$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
8), serta dua nilai yang mewakili awal dan akhir rentang. Metode-metode ini adalah

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_1

Misalkan Anda menyimpan jenis dalam bidang bernama

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
9, dan batas rentang dalam dua bidang bernama
$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
0 dan
$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
1

Saat Anda ingin memeriksa apakah suatu alamat berada dalam rentang yang disimpan, cukup gunakan metode

$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
2 dari alamat tersebut dan periksa apakah itu berada di antara bidang
$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
0 dan
$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
1, dan periksa apakah
$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::1
echo (string) $address->getAddressAtOffset(0);

// This will print ::2
echo (string) $address->getAddressAtOffset(1);

// This will print ::3
echo (string) $address->getAddressAtOffset(2);

// This will print ::3e9
echo (string) $address->getAddressAtOffset(1000);

// This will print ::
echo (string) $address->getAddressAtOffset(-1);

// This will print NULL
echo var_dump($address->getAddressAtOffset(-2));
9 yang disimpan sama dengan salah satu contoh alamat yang Anda

Ini contoh kodenya

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_2

Menangani string alamat dan rentang non-standar

Menerima port

Jika Anda ingin menerima alamat yang mungkin menyertakan port, Anda dapat menentukan flag

$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
6

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_3

Menerima ID zona IPv6

Jika Anda ingin menerima alamat IPv6 yang mungkin menyertakan ID zona, Anda dapat menentukan flag

$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
7

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_4

Menerima alamat IPv4 non-desimal

Alamat IPv4 biasanya dinyatakan dalam notasi desimal, misalnya sebagai

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::
echo (string) $address->getPreviousAddress();

// This will print ::2
echo (string) $address->getNextAddress();
2

Omong-omong, implementasi GNU (digunakan di banyak distro Linux), BSD (digunakan di Mac), dan Windows dari

$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
9 dan
$range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
$range = \IPLib\Range\Subnet::parseString('::1/128');
0 menerima alamat IPv4 dengan angka dalam format oktal dan/atau heksadesimal. Mohon diperhatikan bahwa ini tidak berlaku untuk fungsi
$range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
$range = \IPLib\Range\Subnet::parseString('::1/128');
1 dan
$range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
$range = \IPLib\Range\Subnet::parseString('::1/128');
2, serta implementasi Musl (digunakan dalam Alpine Linux) dari
$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
9 dan
$range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
$range = \IPLib\Range\Subnet::parseString('::1/128');
0

Jadi, misalnya, semua alamat ini setara dengan

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::
echo (string) $address->getPreviousAddress();

// This will print ::2
echo (string) $address->getNextAddress();
2

  • $range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
    $range = \IPLib\Range\Subnet::parseString('::1/128');
    _6 (hanya heksadesimal)
  • $range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
    $range = \IPLib\Range\Subnet::parseString('::1/128');
    _7 (hanya oktal)
  • $range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
    $range = \IPLib\Range\Subnet::parseString('::1/128');
    _8 (bilangan desimal, oktal dan heksadesimal)

(Cobalah. jika Anda menjelajah ke

$range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
$range = \IPLib\Range\Subnet::parseString('::1/128');
_9, browser Anda akan mencoba menjelajah
composer require mlocati/ip-lib
00)

Jika Anda ingin menerima sintaks non-desimal ini, Anda dapat menggunakan flag

composer require mlocati/ip-lib
01

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_5

Perlu diketahui bahwa bendera

composer require mlocati/ip-lib
_02 juga dapat memengaruhi penguraian angka desimal

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_6

Menerima alamat IPv4 dalam notasi not-quad-dotted

Alamat IPv4 biasanya dinyatakan dengan 4 angka, misalnya

$address = \IPLib\Factory::parseAddressString('::1');

// This will print ::
echo (string) $address->getPreviousAddress();

// This will print ::2
echo (string) $address->getNextAddress();
2

Omong-omong, GNU (digunakan di banyak distro Linux), BSD (digunakan di Mac) dan implementasi Windows dari

$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
9 dan
$range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
$range = \IPLib\Range\Subnet::parseString('::1/128');
0

Mohon diperhatikan bahwa ini tidak berlaku untuk fungsi

$range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
$range = \IPLib\Range\Subnet::parseString('::1/128');
1 dan
$range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
$range = \IPLib\Range\Subnet::parseString('::1/128');
2, serta implementasi Musl (digunakan dalam Alpine Linux) dari
$range = \IPLib\Factory::parseRangeString('::ff00/120');

// This will print ::ff00
echo (string) $range->getAddressAtOffset(0);

// This will print ::ff10
echo (string) $range->getAddressAtOffset(16);

// This will print ::ff64
echo (string) $range->getAddressAtOffset(100);

// This will print NULL because the address ::1:0 is out of the range
var_dump($range->getAddressAtOffset(256));

// This will print ::ffff
echo (string) $range->getAddressAtOffset(-1);

// This will print ::fff0
echo (string) $range->getAddressAtOffset(-16);

// This will print ::ff00
echo (string) $range->getAddressAtOffset(-256);

// This will print NULL because the address ::feff is out of the range
var_dump($range->getAddressAtOffset(-257));
9 dan
$range = \IPLib\Range\Subnet::parseString('127.0.0.1/24');
$range = \IPLib\Range\Subnet::parseString('::1/128');
0

Jika Anda ingin menerima sintaks non-desimal ini, Anda dapat menggunakan flag

composer require mlocati/ip-lib
10

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_7

Menerima notasi subnet IPv4 yang ringkas

Bahkan jika tidak ada RFC yang menjelaskannya, notasi subnet IPv4 juga dapat ditulis dalam bentuk yang ringkas, menghilangkan digit tambahan (misalnya,

composer require mlocati/ip-lib
11 dapat ditulis sebagai
composer require mlocati/ip-lib
12). Jika Anda ingin menerima format seperti itu, Anda dapat menentukan bendera
composer require mlocati/ip-lib
13

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_8

Menggabungkan beberapa bendera

Tentu saja, Anda dapat menggunakan lebih dari satu bendera

composer require mlocati/ip-lib
14 sekaligus

$address = \IPLib\Address\IPv4::parseString('127.0.0.1');
_9

Variabel Lingkungan Gitpod

Fitur berikut dapat diaktifkan melalui variabel lingkungan yang telah diatur di preferensi Gitpod Anda

* Harap perhatikan bahwa menyimpan data sensitif dalam variabel lingkungan pada akhirnya tidak aman tetapi seharusnya OK untuk sebagian besar situasi pengembangan

Bagaimana cara mengubah IPv6 ke IPv4 di PHP?

$ipv6 = $_SERVER['REMOTE_ADDR']; . ". ". hexdec(substr($ipv6, 2, 2)) .

Bisakah IPv6 diubah menjadi IPv4?

Tidak semua alamat IPv6 dapat dikonversi ke IPv4 . Anda hanya dapat mengonversi alamat IPv6 yang diwakili IPv4 yang valid. Alamat ini dapat berupa notasi 6to4 atau notasi yang dipetakan IPv4.

Bagaimana cara memetakan IPv6 ke IPv4?

Bagaimana cara memetakan alamat IPv6 yang valid menjadi alamat IPv4 atau notasi 6to4? .
Buka Konverter IPv6 ke IPv4
Masukkan alamat IPv6 yang valid. .
Klik tombol "Ubah IPv6 ke IPv4".
Alat memproses permintaan Anda dan memberi Anda alamat IPv4 yang dikonversi

Apakah IPv4 lebih cepat dari IPv6?

IPv6 lebih cepat daripada IPv4 di perangkat jaringan karena tidak memiliki terjemahan alamat jaringan (NAT). Menggunakan IPv6 adalah pilihan yang lebih baik untuk orang yang membutuhkan kecepatan tinggi untuk pemrosesan jaringan mereka.