PHP kézikönyv
Előző |  | Következő

# ip2long

(PHP 4 , PHP 5)

ip2long -- Pontozott IP címet tartalmazó karakterláncot valódi IP cimmé alakít

## Leírás

int ip2long ( string ip_cím )

Az ip2long() függvény IPv4 formátumú IP címmé alakítja az ip_cím paraméterben megadott szabványos, pontozott formátumú IP-t. Az IP címek valójában ebben a 4 byteos egész szám formátumban tárolódnak. Ha az ip_cím paraméter nem helyes, a függvény értékeként -1-et kapunk vissza. Vigyázat, a -1-et a PHP nem tekinti `FALSE` értéknek.

> Megjegyzés: A PHP 5.0.0 változattól kezdve az ip2long() `FALSE` értékkel tér vissza, ha a megadott ip_cím helytelenül lett megadva.

Példa 1. ip2long() példa

`<?php $ip = gethostbyname('hu.php.net'); $out = "Az alábbi URL-ek egyenértékűek:<br />\n"; $out .= 'http://hu.php.net/, http://' . $ip . '/, és '; $out .= 'http://' . sprintf('%u', ip2long($ip)) . "/<br />\n"; echo $out; ?>`

> Megjegyzés: Mivel a PHP előjeles egésszám ábrázolást alkalmaz, és az IP címek negatív számokat eredményezhetnek ezáltal, szükséged lehet a sprintf() vagy printf() függvény "%u" formázó elemére. Ezáltal a megjelenített szám ábrázolása előjel nélküli lesz.

Eme második példa pedig azt mutatja meg, hogy a printf() segítségével hogy tudjuk ezt a lekonvertált címet kiíratni a php 4-es illetve 5-ös változataiban:

Példa 2. IP cím kiíratása

`<?php $ip = gethostbyname("www.example.com"); $long = ip2long($ip); if ($long === -1 || $long === FALSE) { echo 'Helytelen IP cím, próbáld újra!'; } else { echo $ip . "\n"; // 192.0.34.166 echo $long . "\n"; // -1073732954 printf("%u\n", ip2long($ip)); // 3221234342 } ?>`

Az ip2long() függvényt érdemes párban használni a long2ip() függvénnyel IP cím ellenőrzésre.

Példa 3. IP cím ellenőrzés

`<?php // legyünk biztosak benne, hogy az IP cím rendben van. Ráadásul // még a nem teljes IP címeink is átalakulnak a megfelelő teljes // pontozott alakká. Hogy hogyan, arról később lesz szó. $ip = long2ip(ip2long("127.0.0.1")); // "127.0.0.1" $ip = long2ip(ip2long("10.0.0")); // "10.0.0.0" $ip = long2ip(ip2long("10.0.256")); // "10.0.1.0" ?>`

Az ip2long() függvény képes nem teljes IP címekkel is dolgozni. További információk az http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm oldalon olvashatók.

> Megjegyzés: Az ip2long() függvény a 255.255.255.255 IP címre -1 (PHP 4) vagy `FALSE` (PHP 5) értéket fog visszaadni.

Lásd még: long2ip() és sprintf().

Előző | Tartalom | Következő
inet_pton | Fel | long2ip