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

<?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
}
?>

Notes

Note:

Comme les entiers PHP sont signés et que beaucoup d'adresses IP peuvent être 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() 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() - Convertit une adresse IP (IPv4) en adresse IP numérique
  • sprintf() - Retourne une chaîne formatée

LoadingChargement en cours