ip2long

(PHP 4 , PHP 5)

ip2long --  Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale.

Description

int ip2long ( string ip_address)

ip2long() génère une adresse IPv4 à partir de son équivalent numérique. Si ip_address est invalide, la fonction retournera -1. Notez que -1 n'est pas évalué à FALSE en PHP.

En PHP 5, ip2long() retourne FALSE lorsque ip_address n'est pas valide.

Exemple 1. Exemple avec ip2long()

<?php
$ip
= gethostbyname("www.example.com");
$out = "Les URLS suivantes sont équivalentes :<br />\n";
$out .= "http://www.example.com/, http://" . $ip . "/, et http://" . ip2long($ip) . "/<br />\n";
echo
$out;
?>

Note : Parceque les entiers PHP sont signés et que beaucoup d'adresses IP peuvent être des entiers négatifs, vous devez utiliser le formatteur "%u" de la fonction sprintf() ou printf() pour récupérer une représentation sous la forme d'une chaîne de caractères pour les adresses IP non signés.

Ce second exemple montre comment afficher une adresse convertie à l'aide de la fonction printf() en PHP 4 :

Exemple 2. Affichage d'adresse IP (PHP 5)

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

if (
$long === -1) {
    echo
'IP invalide, merci d'essayer encore';
} else {
    echo $ip   . "\n";           // 192.0.34.166
    echo $long . "\n";           // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Ce troisième exemple monntre comment afficher une adresse convertie à l'aide de la fonction printf() en PHP 5 :

Exemple 3. Affichage d'adresse IP (PHP 5)

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

if (
$long === false) {
    echo
'IP invalide, merci d'essayer encore';
} else {
    echo $ip   . "\n";           // 192.0.34.166
    echo $long . "\n";           // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

ip2long() fonctionne également avec des adresses IP incomplètes. Lisez http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm pour plus d'informations.

Note : ip2long() devrait retourner -1 pour l'adresse IP 255.255.255.255

Voir aussi long2ip() et sprintf().