Fonctions réseaux
PHP Manual

ip2long

(PHP 4, PHP 5)

ip2longConvertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale

Description

int ip2long ( string $ip_address )

Génère une adresse IPv4 à partir de son équivalent numérique.

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.

Liste de paramètres

ip_address

Une adresse au format standard.

Valeurs de retour

Retourne une adresse IPv4, ou FALSE si ip_address est invalide.

Historique

Version Description
5.2.10 Avant cette version, ip2long() retourne parfois un nombre valide même si la valeur passée n'est pas une adresse pointée (IPv4).
5.0.0 Avant cette version, ip2long() retournait -1 en cas d'échec.

Exemples

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 '/, and http://' sprintf("%u"ip2long($ip)) . "/<br />\n";
echo 
$out;
?>

Exemple #2 Affichage d'une adresse IP

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

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

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

Exemple #3 Validation d'adresse IP

ip2long() ne devrait pas être utilisée comme seule méthode pour valider une adresse IP. Combinez-la avec long2ip() :

<?php
// s'assure que les IPs sont valides. Convertit également une IP incomplète 
// en un format valide comme expliqué plus haut.
$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"
?>

Notes

Note: Comme les entiers PHP sont signés et que beaucoup d'adresses IP peuvent être des entiers négatifs, vous devez utiliser le formateur "%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ées.

Note: ip2long() devrait retourner FALSE pour l'adresse IP 255.255.255.255 en PHP 5 <= 5.0.2. Ce comportement a été modifié en PHP 5.0.3 où il retournait -1 (comme en PHP 4).

Voir aussi


Fonctions réseaux
PHP Manual