Manuel PHP

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.0.0 Avant cette version, ip2long() retournait -1 en cas d'échec.

Exemples

Exemple #1 Exemple avec ip2long()

  1. <?php
  2. $ip = gethostbyname('www.example.com');  
  3. $out = "Les URLS suivantes sont équivalentes :<br />\n";  
  4. $out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";  
  5. echo $out;  
  6. ?> 

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 :

  1. <?php
  2. $ip = gethostbyname('www.example.com');  
  3. $long = ip2long($ip);  
  4.  
  5. if ($long == -1 || $long === FALSE) { 
  6.    echo 'IP invalide, merci d\'essayer encore';  
  7. } else { 
  8.    echo $ip . "\n";      // 192.0.34.166
  9.    echo $long . "\n";      // -1073732954
  10.    printf("%u\n", ip2long($ip)); // 3221234342
  11. }  
  12. ?> 

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() :

  1. <?php
  2. // s'assure que les IPs sont valides. Convertit également une IP incomplète
  3. // en un format valide comme expliqué plus haut.
  4. $ip = long2ip(ip2long("127.0.0.1")); // "127.0.0.1"
  5. $ip = long2ip(ip2long("10.0.0")); // "10.0.0.0"
  6. $ip = long2ip(ip2long("10.0.256")); // "10.0.1.0"
  7. ?> 

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


Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique