ip2long

(PHP 4, PHP 5, PHP 7, PHP 8)

ip2longNoktalı IP adresi gösterimini içeren bir dizgeyi uzun tamsayıya dönüştürür

Açıklama

function ip2long(string $ip): int|false

ip2long() işlevi bir IPv4 adresin noktalı gösterimini kullanarak uzun tamsayı gösterimini üretir.

ip2long() işlevi ayrıca, tamamı belirtilmemiş IP adresleri ile de çalışır. Daha fazla bilgi için » http://ps-2.kev009.com/wisclibrary/aix52/usr/share/man/info/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm adresine bakınız.

Bağımsız Değişkenler

ip

Noktalı gösterimle bir IPv4 adresi.

Dönen Değerler

Belirtilen ip geçirsizse false, aksi takdirde uzun tamsayı ile döner

Örnekler

Örnek 1 - ip2long() Örneği

<?php
$ip = gethostbyname('localhost');
$out = "Bu adresler aynıdır:<br />\n";
$out .= 'http://localhost/, http://' . $ip . '/ ve http://' .
  sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Örnek 2 - Bir IP adresinin gösterilmesi

Bu örnekte, printf() işleviyle dönüştürülmüş bir adresin nasıl basılacağı gösterilmiştir:

<?php
$ip   = gethostbyname('mesela.dom');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
    echo 'IP geçersiz, tekrar deneyin';
} else {
    echo $ip   . "\n";            // 192.0.34.166
    echo $long . "\n";            // 3221234342 (32-bit sistemlerde tamsayı taşması sebebiyle -1073732954)
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Notlar

Bilginize:

PHP'nin int türü işaretli tamsayı olduğundan ve çoğu IP adresi 32 bitlik sistemlerde negatif tamsayılarla sonuçlanacağından işaretsiz tamsayı IP adresinin dizge gösterimini elde etmek için sprintf() ve printf() işlevlerinde %u değiştiricisini kullanmalısınız.

Bilginize:

ip2long() işlevi 32 bitlik sistemlerde 255.255.255.255 IP adresi için tamsayı taşması sebebiyle -1 döndürür.

Ayrıca Bakınız

  • long2ip() - Bir uzun tamsayılı IPv4 adresini noktalı gösterimi içeren bir dizgeye dönüştürür
  • sprintf() - Biçemli bir dizge döndürür