bildirgec.org

gerçek ip hakkında tüm yazılar

c#, vb.net ve php’de gerçek ip’yi bulma

admin | 12 July 2010 13:41

Bazı zamanlarda kullanıcının ip’sini öğrenmemiz gerekebilir. Çok basit şekilde;

Request.ServerVariables(“REMOTE_ADDR”)

bu kodu kullanırız. Ancak bazı durumlar olur ki kullanıcı proxy vb. değiştirmelerle gerçek ip’sini farklı gösterebilir. Böyle bir durumda;

——————–

VB.NET için;

Dim _ip As String = Request.ServerVariables(“HTTP_X_FORWARDED_FOR”)

If (_ip = “” Or _ip.ToLower = “unknown”) Then __ip = Request.ServerVariables(“REMOTE_ADDR”)

——————–

C# için;

String _ip = Request.ServerVariables[“HTTP_X_FORWARDED_FOR”];

Php İle Gerçek IP Adresini Bulma

admin | 06 May 2010 12:48

Uzun zamandır kullandığım ve sonuçlarından memnun kaldığım bir php fonksiyonunu sizlerle paylaşmak istedim. Php ile script yazmaya başlayanların oldukça işine yarayacağından eminim.
Fonksiyonumuz kullanıcının modeminin servis sağlayıcısından aldığı gerçek ip adresini göstermektedir. Hatta şirket hatlarında kullanılan 10.10.114.xxx veya 192.168.xxx.xxx tarzı ip adresletini bile göstermektedir. İnternet camiasında proxy denen meretten kurtulmanın yolu hiçbir zaman olmadığı gibi bunda da yoktur sanırım ama yine de fonksiyonun sonuçları tatmin edici durumda.
Fonksyion Kodumuz :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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 Örneği :
Göreceğiniz gibi fonksiyon içinde yapılan çeşitli kontrollerde sonuçlar hep $ip değişkenine atanmış durumda. Yapacağınız şey sadece $ip değişkenini çağırmaktan geçiyor. Buyrun size örnek :
Fonksiyonu üst tarafa yazdıktan sonra alttaki kodu yazmak yeterlidir.

1
$simdiki_ip = GetIP();

Bir de çağırdığımız ip adresiyle alakalı bir kontrol örneği verelim :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$simdiki_ip = GetIP();
// IP adresini aldık...
if (empty($simdiki_ip))
// IP adresi boşsa bir mesaj yazıp scriptimizi durduracağız, kullanıcıyı sayfamıza almayacağız.
{
exit ("IP Adresiniz Alınamadı.<br><br><br>
Lütfen IP Adresinizin kontrol edilebilir ve/veya görünebilir olmasını sağlayınız.<br><br><br>
Aksi taktirde Randevu Sistemimize girişinize izin verilmeyecektir.<br><br><br>
<b><font color=#FF0000>ÇÖZÜM :</font></b> Bu sorunun çözümü için kullandığınız Anti-Virus/Firewall programınızın ayarlarına bakın,<br>
veya<br>
Bilgi İşlem Yetkilinize danışınız.<br><br><br>
<a href=\"javascript:history.back()\" target=\"_self\">Geri Dön</a>");
}else{
echo "IP Adresiniz : $simdiki_ip";
}

Gördüğünüz gibi önce ip adresini aldık, sonra php empty komutu ile ip adresi boşsa exit ile scripti durdurup, kullanıcıya durumu bildirdik. IP adresi doluysa adresi yazdırıp, kullanıcının yoluna gitmesini sağladık.