PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

inet_pton> <headers_sent
Last updated: Fri, 20 Jun 2008

view this page in

inet_ntop

(PHP 5 >= 5.1.0)

inet_ntop — Convertit un paquet d'adresses internet en une représentation humainement lisible

Description

string inet_ntop ( string $in_addr )

Convertit une adresse 32bit IPv4 ou 128bit IPv6 (si PHP a été compilé avec le support IPv6) en une chaîne représentant une famille d'adresses.

Liste de paramètres

in_addr

Une adresse 32bit IPv4, ou 128bit IPv6.

Valeurs de retour

Retourne une représentation de l'adresse, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec inet_ntop()

<?php
$packed 
chr(127) . chr(0) . chr(0) . chr(1);
$expanded inet_ntop($packed);

/* Affiche : 127.0.0.1 */
echo $expanded;

$packed str_repeat(chr(0), 15) . chr(1);
$expanded inet_ntop($packed);

/* Affiche : ::1 */
echo $expanded;
?>

Notes

Historique

Version Description
5.3.0 Cette fonction est maintenant disponible sur les plateformes Windows.



add a note add a note User Contributed Notes
inet_ntop
MagicalTux at FF dot st
04-May-2005 04:43
For people who need this function but don't have it, I could write a function which should give almost the same result.

<?php
function my_inet_ntop($ip) {
    if (
strlen($ip)==4) {
       
// ipv4
       
list(,$ip)=unpack('N',$ip);
       
$ip=long2ip($ip);
    } elseif(
strlen($ip)==16) {
       
// ipv6
       
$ip=bin2hex($ip);
       
$ip=substr(chunk_split($ip,4,':'),0,-1);
       
$ip=explode(':',$ip);
       
$res='';
        foreach(
$ip as $seg) {
            while(
$seg{0}=='0') $seg=substr($seg,1);
            if (
$seg!='') {
               
$res.=($res==''?'':':').$seg;
            } else {
                if (
strpos($res,'::')===false) {
                    if (
substr($res,-1)==':') continue;
                   
$res.=':';
                    continue;
                }
               
$res.=($res==''?'':':').'0';
            }
        }
       
$ip=$res;
    }
    return
$ip;
}
?>

I followed IPv6 reprenstation rules :
- A series of "0"s in a 16bit block can by represented by "0".
- A series of blocks containing only "0"s can be suppressed and represented by "::" (this can be done only once)

(source : http://www.ipv6style.jp/en/faq/latest.shtml#2003022112 )

Example:
<?php
$packed
= str_repeat(chr(0), 15) . chr(1);
$expanded = my_inet_ntop($packed);

/* Outputs: ::1 */
echo $expanded;
?>

I checked in CVS (2005-04-25) and didn't find the inet_ntop function (I really needed to handle IPv6) so I implemented it myself !
mirko dot steiner at slashdevslashnull dot de
23-Mar-2005 11:08
i've used this nice one oneline code:

<?PHP
$one    
= 192;
$two     = 168;
$three     = 1;
$four    = 1;
                           
$ip = $one*pow(256,3) + $two*pow(256,2) + $three*pow(256,1) + $four*pow(256,0);
                           
echo
$ip;
?>

you can also put the first one, shift them by 24 bits to the right, take the secod and shift them by 16, the 3rd by 8 and put thouse all together bitwise...

inet_pton> <headers_sent
Last updated: Fri, 20 Jun 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites