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-lib0
Untuk mengurai alamat sebagai rentang
composer require mlocati/ip-lib1
Untuk mem-parsing rentang dalam format apa pun
composer require mlocati/ip-lib2
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-lib5
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-lib00)
Jika Anda ingin menerima sintaks non-desimal ini, Anda dapat menggunakan flag composer require mlocati/ip-lib01
$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-lib10
$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-lib11 dapat ditulis sebagai composer require mlocati/ip-lib12). Jika Anda ingin menerima format seperti itu, Anda dapat menentukan bendera composer require mlocati/ip-lib13
$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-lib14 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