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

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 (IPv4) uzun tamsayılı ağ adresini noktalı gösterimi içeren bir dizgeye dönüştürür
  • sprintf() - Biçemli bir dizge döndürür
To Top