(PHP 4, PHP 5, PHP 7)
ip2long — Wandelt eine gemäß IPv4-Protokoll angegebene Internet-Adresse vom Punkt-Format in ein long integer
$ip_address
) : intDie Funktion ip2long() erzeugt aus einer im Punkt-Format angegebenen IPv4-Adresse ein long integer.
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.
ip_address
Eine Adresse im Standardformat.
Gibt ein long integer zurück. Ist ip_address
ungültig,
wird FALSE
zurückgegeben.
Version | Beschreibung |
---|---|
5.5.0 | Vor dieser Version lieferte ip2long() unter Windows bisweilen eine gültige Zahl zurück, selbst wenn ein Wert übergeben wurde, der keine (IPv4) Internet-Protocol-Adresse im Punkt-Format war. |
5.2.10 | Vor dieser Version gab ip2long() manchmal eine gültige Zahl zurück, selbst wenn ein Wert übergeben wurde der keine (IPv4) Internet-Protokoll-Adresse in Dezimalpunktschreibweise war. |
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;
?>
Beispiel #2 Eine IP-Adresse anzeigen
Das zweite Beispiel zeigt, wie eine konvertierte Adresse mittels printf() ausgegeben werden kann:
<?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"; // 3221234342 (-1073732954 auf 32-bit Systemen aufgrund des Integer-Überlaufs)
printf("%u\n", ip2long($ip)); // 3221234342
}
?>
Hinweis:
Da der integer-Typ von PHP vorzeichenbehaftet ist und viele IP-Adressen auf 32-bit Architekturen in einen negativen Integerwert aufgelöst werden, sollten Sie dort die Formatierungsangabe "%u" für sprintf() und printf() verwenden, um eine Stringrepräsentation der vorzeichenlosen IP-Adresse zu erhalten.
Hinweis:
ip2long() gibt in PHP 5 <= 5.0.2 für die IP-Adresse 255.255.255.255
FALSE
, und -1 auf 64-bit Systemen in PHP 5 <=5.2.4 zurück. Der Fehler wurde in PHP 5.2.25 gefixt, so dass wieder 4294967295 zurückgegeben wird. 32-bit System geben -1 aufgrund des Integer-Überlaufs zurück.