Forum und email

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.

Note: 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.

Example#1 ip2long() példa

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

Note: 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:

Example#2 IP cím kiíratása

<?php 
$ip 
gethostbyname("www.example.com"); 
$long ip2long($ip);
if (
$long === -|| $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.

Example#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 » https://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm oldalon olvashatók.

Note: 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().