kişisel düşünceler, üstüne bir de teknoloji..

Php ile Kullanıcının Gerçek IP Adresini Alma

İnternette Php ile ilgili bir araştırma yaparken bir fonksiyon dikkatimi çekti. Söz konusu fonksiyonu kullanarak kullanıcının gerçek ip adresini alabiliyorsunuz. Php’de kullanıcının ip adresini almak için birkaç yöntem bulunmaktadır. Fakat bu yöntemler bazen yetersiz gelmektedir. Bazı şirketler ya da kullanıcılar ip adreslerini maskeleyerek bizden gerçek ip adreslerini gizlerler. Bu gibi durumlarda biz sadece 192.168.xxx.xxx gibi işimize yaramayacak ip adreslerini görebiliriz.

Standart php ip bulma yöntemleriyle bunu engelleyemezsiniz. Fakat aşağıdaki fonksiyon aracılığıyla kullanıcının gerçek ip adresini elde edebilirsiniz. (Not: Bu fonksiyon ip adresinin %100 gerçekliğini garanti etmez, sadece standart yöntemlere göre daha güvenilirdir.)

Php Standart Ip Adresi Alma Kodu:

<?php
echo $_SERVER['REMOTE_ADDR'];
?>

Php Gerçek Ip Adresi Alma Fonksiyonu:

Fonksiyon Kodları:

function GetIP(){
	if(getenv("HTTP_CLIENT_IP")) {
 		$ip = getenv("HTTP_CLIENT_IP");
 	} elseif(getenv("HTTP_X_FORWARDED_FOR")) {
 		$ip = getenv("HTTP_X_FORWARDED_FOR");
 		if (strstr($ip, ',')) {
 			$tmp = explode (',', $ip);
 			$ip = trim($tmp[0]);
 		}
 	} else {
 	$ip = getenv("REMOTE_ADDR");
 	}
	return $ip;
}

Kullanımı:

$ip_adresi = GetIP();
// "echo GetIP();" diyerek ekrana da yazdırabilirsiniz.

Test Etmek İçin Tıklayınız

 

17 Comments

  1. ozan

    Selam üstad,
    Merak ettiğim birşey var..
    ‘Test etmek için tiklayiniz ” linki bize kendi ip adresimizi bildiriyor,
    Peki bu linke tiklayan baska ip adreslerini bize bildirecek fonksiyonu
    nasıl oluşturabiliriz ?
    Ve bu fonksiyonun web’deki sürekli ulasabilecegimiz bir adrese bildirim göndermesini
    nasil sağlayabiliriz ?

    • Canahm3t

      Ben test dosyasında ip’yi sadece gösterdim. Ama siz onu veritabanına kaydederek hangi zamanda hangi ip’den girildiğini daha sonra raporlayabilirsiniz.

    • muzaffer

      biraz veri tabanı bilgisi gerektiriyor.
      yapamıyorsan bıle

      dosyaya kaydet ve dıledıgın zaman bak .

  2. Nedim Genar

    çok tşk ederim hocam. gerçekten işime yaradı. $_ENV veya $_SERVER reel sonuçları anlık vermiyodu. fonksiyonunuz çok iyi çalışıyor.

  3. Web Tasarım

    Çok teşekkür ederim işime yaradı

  4. PHP

    Ne yazıkki bu işe yaramayacak bir yöntemdir sevgili dostum. İnternetten tor browser indirirek aynı sayfayı açarsanız, ip adresinizin farklı olduğunu görebilirsiniz.

    • Ahmet İşcan

      “Not: Bu fonksiyon ip adresinin %100 gerçekliğini garanti etmez, sadece standart yöntemlere göre daha güvenilirdir.” kısmının neresini anlamadın “sevgili dostum”. Tor browser zaten standart kullanıcıların %95’inin ismini bile bilmediği bir yazılım. Daha gerçek e-posta adresini yazmaya bile çekinen birinin akıl vermesi zaten başlı başına ayrı bir konu. Hayatında başarılar, aynen bu şekilde devam et.

    • serter

      tor browser değilki sadece modemi resetlesekte zaten yine ip adresimiz değişmezmi

      • Ahmet İşcan

        IP adresinin değişmesi önemli değil. Bu fonksiyon sayfa ziyaret edildiğinde mevcut ip adresini aldığından ip adresinin değiştirilmesi problem değil.

  5. serter

    öncelikle emeğinize sağlık çok güzel çalışıyor ancak kod satırlarını biraz açıklayabilirmisiniz hangi satırda ne iş yapıyor diye..

    • Ahmet İşcan

      Görüşleriniz için teşekkürler. Satır satır açıklasam da size faydası olacağını sanmam, fonksiyon olarak kullanmak yeterli olacaktır.

  6. suat kulgi

    iki fonksiyondada aynı sonucu aldım.
    fonksiyondan sonra

    iki haldede ipler aynı

  7. selim

    Merhaba hocam,
    Ben aynı konu üzerinde farklı bir şey sormak istiyorum. Yardımcı olursanız sevinirim.

    Bildiğiniz üzere sitenize Türkiye’den girdikleri halde yabancı ülkelerden girmiş gibi gösteren programlar var.
    Benim merak ettiğim sahte ip ile web siteme giren ziyaretçilerin (mesela isviçre ve romanya) gerçek İp adreslerini gösteren bir sistem veya program var mıdır acaba?

    İlginize şimdiden teşekkürler.

    • Ahmet İşcan

      Merhaba,

      Anladığım kadarıyla vpn gibi teknolojilerden söz ediyorsunuz. O tür teknolojilerde gerçek ip adresini öğrenme gibi bir imkanımız yok maalesef.

  8. Metehan

    Sizin bu işlemi ben php de forma giydirebilirmiyim ziyaretci defteri gibi sistem düşünün adam form gönderdiğinde ayriyetten ben bu adamın ıp adresini alıyım ismini falan alırken ipsinide alayım diyorum

    • Ahmet İşcan

      Merhaba,
      Evet kendi sisteminize göre güncelleyip entegre edebilirsiniz.

  9. ahmet

    merhaba, bu sistem ipv4 uyumlu sanırım. ipv6 inde dahil olduğu yeni bir kod yazarmısın hocam.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir