Php ile Gerçek IP Adresini Alma

Eğer bir dinamik web siteniz var ise saldırıların da olması kaçınılmazdır. Elbette her siteye saldırı olacak diye bir şey yok ancak genel olarak spam yorumlar en kaçınılmaz yöntemlerdir. Saçma sapan kullanıcı isimleri , yorumlar linkler vs şeklinde sitenizi çökertmeye çalışabilirler.Ya da farklı bir açıdan bakacak olursak en belirgin olarak login duvarınızı aşmaya çalışacaklar. Güvenlik önlemleri hiçbir zaman %100 olarak tamamlanamaz bunu da söylemekte fayda var ancak en aza indirgemek en doğrusu olacaktır. Bunun ip adresi almakla olan alakası ise kullanıcıyı engelleme kısmı. Eğer bir saldırgan giriş sayfanızı buldu ve farklı programlarla ya da elle birden fazla yalnız şifre girdiyse onu gerçek ip adresi alarak engelleyebiliriz.

Tabi burada önemli bir nokta var ki o da kullanıcının gerçek ip adresi ve modem ip adresi arasındaki farktır.Birçok saldırgan kurnazca yöntemler deneyerek özel programlar ile ip adreslerini örneğin 3 girişten sonra kapatırlar. Ama eğer kullanıcının modem ip’sini değil de gerçek ip’sini alırsanız güvenlik açısından doğru bir adım atmış olursunuz. Php’nin bir web dili olduğunu ve günümüzde de en çok web tabanlı programlara saldırı yapıldığını düşünecek olursak php ile gerçek ip adresini alma oldukça mantıklı olacaktır.

Şimdi php ile gerçek ip adresini bulmayı nasıl yaparız ona bakalım;

<?php
echo $_SERVER['REMOTE_ADDR']; // Normalde kullanılan koddu ve proxy ip'sini almaya yarar
?>
function GetIP(){
	if(getenv("HTTP_CLIENT_IP")) {
 		$ip = getenv("HTTP_CLIENT_IP");
 	} elseif(getenv("HTTP_X_FORWARDED_FOR")) {
 		$ip = getenv("HTTP_X_FORWARDED_FOR"); // proxy ile bağlanmışsa gerçek ip'yi alır
 		if (strstr($ip, ',')) {
 			$tmp = explode (',', $ip);
 			$ip = trim($tmp[0]);
 		}
 	} else {
 	$ip = getenv("REMOTE_ADDR");
 	}
	return $ip;
}

Bu şekilde kullanıcının gerçek ip adresini de almış olduk.Bir de kullanımına bakalım.

$ip_adresi = GetIP();
// "echo GetIP();" şeklinde gerçek ip adresini yazdırabiliriz.

Hazır sistemlerde yani wordpress altyapısı ile oluşturulan sitelerde yorumlar panelinde vs görürsünüz. Burada alınan ip adresleri gerçek ip adresleridir. Ancak kendiniz özel bir yazılım alt yapısı ile site oluşturduysanız php ile gerçek ip adresini alma işinize yarayacaktır. İyi çalışmalar.

AuthorHarun ALP

Bu adam , bilgi sahibi olduğu konularda makalelerini daha bilgilendirici hale getirip görseller ile süslüyor ve seo uyumlu makaleler ortaya çıkarıyor. Güncel webmaster konularını işlemekten keyif alıyor ve genelde her makale aslında bir sorunun çözümü niteliğinde.

3 thoughts on “Php ile Gerçek IP Adresini Alma

  1. Merhabalar,

    Peki aklimda söyle bir islem mevcut. Ayni anda ayni kullanici ile 2 farkli ip adresinden herhangi bir sayfama ulasildiginda, o üyeyi blocklamak istiyorum. Böyle bir islem php ile mevcutmudur, mevcut ise hangi komutlar ile mevcuttur.

    Saygilarimla

  2. Yukarida verilen GetIP() fonksiyonunun kullanilmasini kesinlikle onermiyorum. IP Spoofing yapabiliyoe saldirganlar. Atiyorum saldirganin ip adresi 123.123.123.123, saldirgan basit bir sekilde isteklere X-Forwarded-For headeri enjekte edebilir(mesela 32.32.32.32) her saldirdiginda ip adresi farkli alinir, bu sadece bu makalede degil genel butun sitede sorunlara yol acabiliyor mesela ayni IPden birden fazla hesaba izin vermiyorsunuz, fakat az once yazdigim yontemle saldirgam veritabaninizi yogun kullanici kaydi altinda birakiyor. Bunun yerine REMOTE ADDR yi kullanin, kayit gibi yerlerde http flood engellemek icin de recaptacha felan kullanmanizi tavsiye ediyorum.

    • Yorum için teşekkürler , okurlar yorumunuzu okuyup kendilerince doğru bulurlarsa dediğiniz yöntemi uygulayacaklardır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir