Archiv rubriky: Programování

Jak inkrementovat IPv6 adresu v PHP

PHP nativně nepodporuje dostatečně velká (128 bit) čísla, aby bylo inkrementování decimální reprezentace IPv6 adresy (jednoduše) možné. Pro zjednodušení tedy budeme potřebovat GMP extension.

Nejdříve je potřeba převést IP adresu do binární podoby a instanciovat GMP číslo:

$ip = gmp_import(inet_pton('2001:15b::1'));

Poté můžeme IP inkrementovat tak, jak jsme zvyklí:

$ip++;

Nakonec IP převedeme zpět do klasického formátu:

$ip = inet_ntop(hex2bin(gmp_strval($ip, 16)));
// 2001:15b::2

Nebo pokud preferuje dlouhý formát adresy:

$ip = implode(':', str_split(gmp_strval($ip + 1, 16), 4));
// 2001:015b:0000:0000:0000:0000:0000:0002

Efektivní předávání datových struktur mezi PHP aplikacemi

Pokud budete muset řešit předávání dat mezi (PHP) aplikacemi, např. přes RabbitMQ nebo Kafku, jistě vás napadne je buďto serializovat (to ovšem funguje jen v rámci PHP) nebo použít JSON (XML je dle mého názoru přežitek).

Neexistuje ale lepší, efektivnější způsob? Ale ano, jmenuje se BSON! A PHP jej podporuje pomocí extension Mongo funkcemi bson_encode() a bson_decode(). Encode/decode je navíc rychlejší nejen než JSON, ale také než serialize(). Je libo nějaké testy?