Manuel PHP
Précédent |  | Suivant

# 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.

> Note : Depuis PHP 5.0.0, ip2long() retourne `FALSE` si le paramètre 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 : 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.

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

Exemple 2. Affichage d'adresse IP

`<?php $ip = gethostbyname('www.example.com'); $long = ip2long($ip); if ($long == -1 || $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() ne devrait pas être utilisée comme seule méthode pour valider une adresse IP. Combinez-la avec long2ip() :

Exemple 3. Validation d'adresse IP

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

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 `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 long2ip() et sprintf().

Précédent | Sommaire | Suivant
inet_pton | Niveau supérieur | long2ip