PHP Handbuch
Zurück |  | Weiter

# ip2long

(PHP 4, PHP 5)

ip2long -- Verwandelt eine gemäß IPv4-Protokoll angegebene Internet-Adresse vom Punkt-Format in die ausgeschriebene Adress-Angabe

## Beschreibung

int ip2long ( string ip_address )

Die Funktion ip2long() erzeugt aus einer im Punkt-Format angegebenen IPv4-Adresse eine ausgeschriebene Adress-Angabe. Ist `ip_address` ungültig, wird `-1` zurückgegeben. Beachten Sie, dass `-1` in PHP nicht als `FALSE` evaluiert wird.

> Anmerkung: Seit PHP 5.0.0 gibt ip2long() `FALSE` zurück, wenn `ip_address` ungültig ist.

Beispiel 1. ip2long()-Beispiel:

`<?php $ip = gethostbyname('www.example.com'); $out = "Die folgenden URLs entsprechen sich:<br />\n"; $out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n"; echo $out; ?>`

> Anmerkung: Da der Integertyp von PHP vorzeichenbehaftet ist und viele IP-Adressen in einen negativen Integerwert aufgelöst werden, sollten Sie die Formatierungsangabe "%u" für sprintf() und printf() verwenden, um eine Stringrepräsentation der vorzeichenlosen IP-Adresse zu erhalten.

Das zweite Beispiel zeigt, wie eine konvertierte Adresse mittels printf() sowohl in PHP4 als auch in PHP 5 ausgegeben werden kann:

Beispiel 2. Eine IP-Adresse anzeigen

`<?php $ip = gethostbyname('www.example.com'); $long = ip2long($ip); if ($long == -1 || $long === FALSE) { echo 'Ungültige IP, versuchen Sie es noch einmal'; } else { echo $ip . "\n"; // 192.0.34.166 echo $long . "\n"; // -1073732954 printf("%u\n", ip2long($ip)); // 3221234342 } ?>`

ip2long() sollte nicht als einzige Form der IP-Validierung verwendet werden. Kombinieren Sie die Funktion mit long2ip():

Beispiel 3. IP-Validierung

`<?php // stellen Sie sicher, dass die IPs gültig sind. Es werden auch unvollständige // IPs entsprechend der untenstehenden Erläuterung in das Punktformat konvertiert. $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" ?>`

ip2long() funktioniert auch mit unvollständigen IP-Adressen. Lesen Sie http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm, um weitere Informationen zu erhalten.

> Anmerkung: ip2long() gibt in PHP 5 <= 5.0.2 für die IP-Adresse `255.255.255.255` `FALSE` zurück. Der Fehler wurde in PHP 5.0.3 gefixt, so dass wieder `-1` zurückgegeben wird (ebenso wie in PHP 4).

Siehe auch long2ip() und sprintf().

Zurück | Zum Anfang | Weiter
inet_pton | Nach oben | long2ip