• 02-11-2008, 21:19:22
    #1
    Arkadaşlar ip adresini nasıl değişkene atabilirim. Yalnız proxy değilde gerçek ip adresini almak istiyorum.

    $_SERVER['REMOTE_ADDR'];
    Yukarıdaki kod proxyleri devre dışı bırakıyormu?
  • 02-11-2008, 22:15:26
    #2
    Üyeliği durduruldu
    Proxy türüne göre. Anonim çalışan proxy'leri aşamazsınız. Ancak Transparent olarak
    çalışan proxyler karşı tarafa gerçek IP adresinide verir.
    Örnek:

    <?php if($_SERVER['HTTP_X_FORWARDED_FOR']): echo "Proxy Name " .$_SERVER['HTTP_VIA']; echo "Proxy IP " .$_SERVER['REMOTE_ADDR']; echo gethostbyaddr; echo "Your Real IP " .$_SERVER['HTTP_X_FORWARDED_FOR']; else: // if access direct to Internet, without Proxy echo "Real IP " . $_SERVER['REMOTE_ADDR']; endif; ?>
  • 02-11-2008, 22:22:52
    #3
    Gerçek ip adresini aşağıdaki veriyor diyorsun sanırım yanlış anlamadıysam?

    $_SERVER['REMOTE_ADDR'];
  • 03-11-2008, 01:18:33
    #4
    Gerçek ip bulmak için böyle bir fonksiyon kullanıyorum. Alıntıdır ama nerden hatırlamıyorum.
    function gercekip(){
            global $HTTP_SERVER_VARS;
            $private_net_ip_masks = array( '10.0.0.', '192.168.', '127.0.0.', '172.16.0.' );
            if( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '' ){
              $ipStrings = explode( ',',$_SERVER['HTTP_X_FORWARDED_FOR']);
              foreach($ipStrings as $k => $v){if( empty($v) ){unset( $ipStrings[$k] ); }else {if(!isset($ipString)) { $ipString = $v; } } }
            }
            if( isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] != '' ){
              $ipStrings[] = $_SERVER['REMOTE_ADDR'];
              if(!isset($ipString)) {$ipString = $_SERVER['REMOTE_ADDR'];}
            }
            foreach($ipStrings as $k1 => $ip){ foreach($private_net_ip_masks as $k2 => $pip){ if(strpos($ip, $pip) === 0) { unset($ipStrings[$k1]); break; } } }
            if(!empty($ipStrings) ){ foreach( $ipStrings as $v ){if(!empty($v)){ $ipString = $v; $is_local_ip = false; break; } }}
            else { $is_local_ip = true; }
            return $ipString;
    }
  • 03-11-2008, 17:21:49
    #5
    Neyse arkadaşlar tamam buldum. Yardımcı olan herkese teşekkür ederim.
  • 04-11-2008, 12:24:28
    #6
    radmin de daha önce vermişti, forumda mevcut;

    <?php 
    function kullaniciinfo () { 
       $proxy=""; 
       $IP = ""; 
       if (isSet($_SERVER)) { 
           if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) { 
               $IP = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
               $proxy  = $_SERVER["REMOTE_ADDR"]; 
           } elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) { 
               $IP = $_SERVER["HTTP_CLIENT_IP"]; 
           } else { 
               $IP = $_SERVER["REMOTE_ADDR"]; 
           } 
       } else { 
           if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) { 
               $IP = getenv( 'HTTP_X_FORWARDED_FOR' ); 
               $proxy = getenv( 'REMOTE_ADDR' ); 
           } elseif ( getenv( 'HTTP_CLIENT_IP' ) ) { 
               $IP = getenv( 'HTTP_CLIENT_IP' ); 
           } else { 
               $IP = getenv( 'REMOTE_ADDR' ); 
           } 
       } 
       if (strstr($IP, ',')) { 
           $ips = explode(',', $IP); 
           $IP = $ips[0]; 
       } 
       $RemoteInfo['ip']=$IP; 
       $RemoteInfo['hostadi']=@GetHostByAddr($IP); 
       $RemoteInfo['proxy']=$proxy; 
       return $RemoteInfo; 
    } 
    
    
    
    //Örnek kullanım 
    #kullanıcının fonksiyondan gelecek bilgileri bir değişkene atayalım 
    $user=kullaniciinfo (); 
    #kullanıcının ip adresini ekrana yazdıralım 
    echo $user['ip']; 
    #kullanıcının host adını ekrana yazdıralım 
    echo $user['hostadi']; 
    #varsa kullanıcının proxy si için 
    echo $user['proxy']; 
    //Örnek kullanım bitti 
    ?>
  • 04-11-2008, 12:55:40
    #7
    Acaba
    Alıntı
    $_SERVER['REMOTE_ADDR'];
    bu kodu html site içerisine gömebilir miyiz?
  • 04-11-2008, 13:22:31
    #8
    html dosyasının adını .php olarak yaz. ardından .php dosyasındaşu kodları yaz;
    <?php
    $ip_adres= $_SERVER['REMOTE_ADDR'];
    echo $ip_adres;
    ?>

    Böyle gömebilirsin. Ama dosya uzantısına dikkat et .php olmalı.
  • 04-11-2008, 13:32:35
    #9
    Üyeliği durduruldu
    helperman adlı üyeden alıntı: mesajı görüntüle
    Acaba bu kodu html site içerisine gömebilir miyiz?
    $_SERVER Bir Apache Global Değişkenidir.
    Ve Sadece Sunucu Bazlı Çalışmalarınıda Kullanabilirsiniz. (Server Side)
    Eğer HTML Site İçerisinde Kullanmktan Kastınız HTML İçine Gömmekse Bu Tabiiki Mümkün PHP Önemli Özelliklerinden Biride Hypertext Olmasıdır.

    Şayet Yok Suncu Bazlı Değil Ben static Olan Sayfada (client Side) İp Göstermek İstiyorum Diyosanız.

    <script language="JavaScript">
    var sorgu= '<!--#echo var="REMOTE_ADDR"-->';
    document.write('<input type="hidden" id="ipsi" />');
    ipsi.value = sorgu;
    
    function ipver(){
    	var IP = ipsi.value;	 
       return IP;
    }
    </script>
    IP adresini almak icin ipver() Fonksiyonununu Kullanıyoruz.

    Kolay Gelsin.