Php : Ip Adresi Hangi Blokta
-
Ülkelere göre ayrılmış Ip Blok listesi var mysql olarak. herhangi bir Ip adresinin hangi blokta olduğunu nasıl bulabilirim, günlerdir düşünüyorum ama işin içinden çıkamadım. Belki yapıya göre mümkün olmayan birşey istiyorum yada mantık olarak bunu yapabilecek seviyeye gelememişim.
Örnek Tablo Yapısı
-
where bizim_ip >= ip_baslangic and bizim_ip <= ip_bitis
olmuyormu
bodoslama aklıma bu geldi :D
büdüt: hmm olması için şu formata çevirmek lazım sanırım
2.48.0.0 -> 002.048.000.000
büdüt2 : sanırım senin ihtiyacın olan şey inet_aton() fonksiyonu
where inet_aton(bizim_ip) >= inet_aton(ip_baslangic) and inet_aton(bizim_ip) <= inet_aton(ip_bitis)
wert tarafından 16/May/21 13:06 tarihinde düzenlenmiştir -
ip adresini int sayıya çevirip
Başlangıç : 46.172.224.0 => 783.081.472
Bitiş : 46.172.255.255 => 783.089.663
bu aralıkta rastgele bir ip adresimiz => 46.172.235.112 int hali => 783.084.400
783 milyon 84 bin 400 sayısı yukarıdaki ip adresi blokları arasındadır. bir if koşuluyla kolaylıkla tespit edilebilir.
Benim aklıma gelen yöntem böyle başka bir yöntemde bulabilir tabi; hexadecimal olarakta kontrolü yapılabilir;
http://www.aboutmyip.com/AboutMyXApp/IP2Integer.jsp?ipAddress=192.168.2.1
-
wert bunu yazdı
where bizim_ip >= ip_baslangic and bizim_ip <= ip_bitis
olmuyormu
bodoslama aklıma bu geldi :D
büdüt: hmm olması için şu formata çevirmek lazım sanırım
2.48.0.0 -> 002.048.000.000
büdüt2 : sanırım senin ihtiyacın olan şey inet_aton() fonksiyonu
where inet_aton(bizim_ip) >= inet_aton(ip_baslangic) and inet_aton(bizim_ip) <= inet_aton(ip_bitis)
Eyvallah hocam, daha önce duymadığım bir parametre mi artık bilmiyorum inet_aton, bununla çözüldü, çok teşekkürler.