Rechercher une fonction PHP

ip2long

(PHP 4, PHP 5, PHP 7)

ip2longConvertit une chaîne contenant une adresse (IPv4) en notation décimale à point en une adresse entier long

Description

ip2long ( string $ip_address ) : int

La fonction ip2long() génère une représentation en entier long d'une adresse IPv4 depuis son format standard (notation décimale à point)

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

Retour à la première page de Manuel PHP  Table des matières Haut

Liste de paramètres

ip_address

Une adresse au format standard.

Retour à la première page de Manuel PHP  Table des matières Haut

Valeurs de retour

Retourne l'entier long, ou FALSE si ip_address est invalide.

Retour à la première page de Manuel PHP  Table des matières Haut

Historique

Version Description
5.5.0 Antérieur à cette version, sur Windows ip2long() retournait parfois un nombre valide même si la valeur passée n'était pas une adresse IPv4 en notation décimale à point.
5.2.10 Antérieur à cette version, ip2long() retournait parfois un nombre valide même si la valeur passée n'était pas une adresse IPv4 en notation décimale à point.

Retour à la première page de Manuel PHP  Table des matières Haut

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

<?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";            // 3221234342 (-1073732954 sur les sytèmes 32-bit, à cause du débordement d'entier)
    
printf("%u\n"ip2long($ip)); // 3221234342
}
?>

Retour à la première page de Manuel PHP  Table des matières Haut

Notes

Note:

Comme les entier PHP sont signés et que beaucoup d'adresses IP résulteront en des entiers négatifs sur les architectures 32-bits, vous devez utiliser le motif "%u" de la fonction sprintf() ou de la fonction printf() pour récupérer la représentation sous forme de chaîne de caractères d'une adresse IP non signé.

Note:

ip2long() retournera FALSE pour l'adresse IP 255.255.255.255 en PHP 5 <= 5.0.2, et -1 sur les systèmes 64-bits en PHP 5 <=5.2.4. Ça a été corrigé en PHP 5.2.5 où ça retourne 4294967295. Les systèmes 32-bit retourneront -1 à cause du débordement de la valeur d'entier.

Retour à la première page de Manuel PHP  Table des matières Haut

Voir aussi

  • long2ip() - Convertit une adresse entier long (IPv4) en sa notation décimale à point
  • sprintf() - Retourne une chaîne formatée

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-ip2long.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut