Bilişim dünyasına kaliteli, özgün ve Türkçe içerikler kazandırmayı hedefleyen bir platform..

friends friends friends

PHP ip2long ve long2ip

IP adresi kayıtlarını IP kontrolleri, IP yasaklama, ziyaretçi sayacı, oylama yapma vb. gibi nedenlerle veri tabanında tutmamız gerekebilir. Ancak veri tabanında IP adresi tutmak çok güvenli ve mantıklı bir yöntem değildir. Bu yüzden PHP'nin bize sağladığı ip2long() ve long2ip() fonksiyonları ile IP adreslerini sayısal değerlere dönüştürüp veri tabanına kayıt işlemleri yapılmalıdır.

ip2long()

ip2long() fonksiyonu IP adresini 32 bitlik signed (işaretli) bir değere dönüştürür (ya negatif ya da pozitif bir değer). Eğer pozitif bir değer dönerse problem değil ama negatif bir değer dönerse bunu printf kullanarak pozitif bir değere dönüştürmeliyiz.

<?php 
    $ip = "192.0.35.122";
    $long = ip2long($ip);
    echo $long;    // Çıktı: -1073732742
    printf("%u", $long);    // Çıktı: 3221234554
    // 4294967296 - 1073732742 = 3221234554
?>

long2ip()

long2ip() fonksiyonu ip2long() fonksiyonundan elde ettiğimiz değeri tekrar IP adresine dönüştürür. Bir nevi ip2long() fonksiyonunun sağlaması diyebiliriz.

<?php
    $ip = long2ip(3221234554);
    echo $ip;    // Çıktı: 192.0.35.122
?>
ip2long() long2ip() php veritabanına ip adresi kaydetmek php veritabanında ip adresi tutmak
0 Beğeni
PHP
Önceki Yazı

Homebrew

17 Ekim 2020 tarihinde yayınlandı.
Sonraki Yazı

Javascript Nesnel Yaklaşım

17 Ekim 2020 tarihinde yayınlandı.
arrow