SunshinePHP 2016


(PHP 5 >= 5.1.0)

inet_ntopConvertit un paquet d'adresses internet en une représentation humainement lisible


string inet_ntop ( string $in_addr )

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

Liste de paramètres


Une adresse 32 bit IPv4, ou 128 bit 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.


Exemple #1 Exemple avec inet_ntop()

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

/* Affiche : */
echo $expanded;

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

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


Version Description
5.3.0 Cette fonction est maintenant disponible sur les plate-formes Windows.

Voir aussi

  • long2ip() - Convertit une adresse IP (IPv4) en adresse IP numérique
  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale
  • inet_pton() - Convertit une adresse IP lisible en sa représentation in_addr

add a note add a note

User Contributed Notes 4 notes

ryansun81 at gmail dot com
5 years ago
For people who wondering what the meaning of this function name:
pton: a presentation(printable) format address to network address
ntop: a network address to presentation(printable) format address
MagicalTux at FF dot st
10 years ago
For people who need this function but don't have it, I could write a function which should give almost the same result.

function my_inet_ntop($ip) {
    if (
strlen($ip)==4) {
// ipv4
    } elseif(
strlen($ip)==16) {
// ipv6
$ip as $seg) {
$seg{0}=='0') $seg=substr($seg,1);
            if (
$seg!='') {
            } else {
                if (
strpos($res,'::')===false) {
                    if (
substr($res,-1)==':') continue;

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

= 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 !
PandoraBox2007 at gmail dot com
3 years ago
Before inet_pton nice work


no need compare compress data
string inet_ntop ( string $in_addr [, bool $compress = false] )

marcus at synchromedia dot co dot uk
4 months ago
PHP's inet_ntop function is not compatible with the binary representation used by MySQL's INET6_ATON function, assuming you are using the recommended method of storing both IPv4 and IPv6 addresses in a VARBINARY(16) field. You need to convert it like this:

* Convert a MySQL binary v4 (4-byte) or v6 (16-byte) IP address to a printable string.
* @param string $ip A binary string containing an IP address, as returned from MySQL's INET6_ATON function
* @return string Empty if not valid.
function inet6_ntop($ip) {
    $l = strlen($ip);
    if ($l == 4 or $l == 16) {
        return inet_ntop(pack('A' . $l, $ip));
    return '';

You don't need a function going the other way because MySQL's INET6_NTOA is already compatible with PHP's inet_pton function.
To Top