(PHP 4, PHP 5)
ip2long — Noktalı IP adresi gösterimini içeren bir dizgeyi sayısal adrese dönüştürür
$ip_adresi
)ip2long() işlevi noktalı gösterimini kullanarak bir IPv4 sayısal ağ adresi oluşturur.
ip2long() işlevi ayrıca, tamamı belirtilmemiş IP adresleri ile de çalışır. Daha fazla bilgi için » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm adresine bakınız.
ip_adresi
Noktalı gösterimle bir IPv4 adresi.
Belirtilen ip_adresi
geçirsizse FALSE
, aksi
takdirde IPv4 adresi ile döner
Sürüm: | Açıklama |
---|---|
5.0.0 | Bu sürümden önce, ip2long() işlev başarısız olduğunda -1 döndürüyordu. |
Ö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, PHP4 ve PHP 5'te 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"; // -1073732954
printf("%u\n", ip2long($ip)); // 3221234342
}
?>
Örnek 3 - IP doğrulama
ip2long() işlevi IP doğrulaması amacıyla tek başına değil, long2ip() ile birlikte kullanılmalıdır:
<?php
// IP'ler geçerli mi, bakalım. Bunu yapmak için eksik belirtilmiş
// IP adreslerini düzgün IP adreslerine dönüştürelim.
$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"
?>
Bilginize:
PHP'nin tamsayı türü işaretli tamsayı olduğundan ve çoğu IP adresi negatif tamsayılarla sonuçlanacağından işaretsiz 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 PHP 5 <= 5.0.2 sürümlerinde 255.255.255.255 adresi için
FALSE
döndürmektedir. Bu, PHP 5.0.3 sürümünde (PHP 4'teki gibi) -1 döndürecek şekilde düzeltilmiştir.