Forum und email

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.

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.

Parameter Liste

ip_address

Eine Adresse im Standardformat.

Rückgabewerte

Gibt die IPv4-Adresse zurück. Ist ip_address ungültig, wird FALSE zurückgegeben.

ChangeLog

Version Beschreibung
5.0.0 Vor dieser Version gab ip2long() im Fehlerfall -1 zurück.

Beispiele

Example#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;
?>

Example#2 Eine IP-Adresse anzeigen

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

<?php
$ip   
gethostbyname('www.example.com');
$long ip2long($ip);

if (
$long == -|| $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
}
?>

Example#3 IP-Validierung

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

<?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"
?>

Anmerkungen

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

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