8.83 Réseau
8 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes pré-définies . checkdnsrr . closelog . debugger_off . debugger_on . define_syslog_variables . dns_check_record . dns_get_mx . dns_get_record . fsockopen . gethostbyaddr . gethostbyname . gethostbynamel . getmxrr . getprotobyname . getprotobynumber . getservbyname . getservbyport . inet_ntop . inet_pton ->ip2long . long2ip . openlog . pfsockopen . socket_get_status . socket_set_blocking . socket_set_timeout . syslog
|
8.83.26 ip2long()
Convertit une chaîne contenant une adresse (IPv4)
IP numérique en adresse littérale
[ Exemples avec ip2long ] PHP 4, PHP 5
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 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 :
| 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
:
| 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
.
|