• 30-09-2017, 03:34:30
    #1
    Selam elimde bir kod var fakeip diye yazmış yazan siteye giren kişinin ipini nasıl çekerim bu kodu bana düzeltebilirmisiniz.

    <?
    function fakeip(){ 
        return long2ip( mt_rand(0, 65537) * mt_rand(0, 65535) );  
    }
    function Get_File($url) {
        $timeout = 30;
        $cerez = "cookie.txt";
        $useragent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0";
        $headers = array(
            'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Cache-Control: private, max-age=0',
            'Connection: keep-alive',
            'Keep-Alive: 115',
            'Accept-Language: en-US;q=0.6,en;q=0.4',
        );
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: ".fakeip(),"X-Client-IP: ".fakeip(),"Client-IP: ".fakeip(),"HTTP_X_FORWARDED_FOR: ".fakeip(),"X-Forwarded-For: ".fakeip())); 
        curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cerez);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cerez);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_AUTOREFERER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 15);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }
    Yardımcı olacak üstatlarıma şimdiden teşekkürler
  • 30-09-2017, 03:39:18
    #2
    Burdan Ulaşabilirsiniz : https://www.r10.net/1065341554-post1.html
  • 30-09-2017, 03:59:17
    #3
    Türkçenin esnekliğinden başlığı okuyunca anladığım: "Siteye giren kişinin ekran kartını yakma, monitörünü patlatma, odasındaki elektrikleri kesme..."
  • 30-09-2017, 04:00:17
    #4
    RemziKurcan adlı üyeden alıntı: mesajı görüntüle
    Burdan Ulaşabilirsiniz : https://www.r10.net/1065341554-post1.html

    Ben oradakileri burada verdiğim kodların içerisine nasıl koyacağım usta anlamıyorum ki
  • 30-09-2017, 04:21:33
    #5
    YusufKURT adlı üyeden alıntı: mesajı görüntüle
    Selam elimde bir kod var fakeip diye yazmış yazan siteye giren kişinin ipini nasıl çekerim bu kodu bana düzeltebilirmisiniz.

    <? function fakeip(){ return long2ip( mt_rand(0, 65537) * mt_rand(0, 65535) ); } function Get_File($url) { $timeout = 30; $cerez = "cookie.txt"; $useragent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0"; $headers = array( 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Cache-Control: private, max-age=0', 'Connection: keep-alive', 'Keep-Alive: 115', 'Accept-Language: en-US;q=0.6,en;q=0.4', ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: ".fakeip(),"X-Client-IP: ".fakeip(),"Client-IP: ".fakeip(),"HTTP_X_FORWARDED_FOR: ".fakeip(),"X-Forwarded-For: ".fakeip())); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_COOKIEJAR, $cerez); curl_setopt($ch, CURLOPT_COOKIEFILE, $cerez); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 15); $data = curl_exec($ch); curl_close($ch); return $data; }
    Yardımcı olacak üstatlarıma şimdiden teşekkürler

    Can sıkıntısından bir cevap yazayım devamına katılamam muhtemelen ;

    Öncelikle IP adresleri

    255.255.255.255 -> 2^8 x 2^8 x 2^8 x 2^8 kombinasyona sahiptir (v4 için söylüyorum) bu kombinasyon kapsamında
    http://www.ipaddressguide.com/ip
    0.0.0.1 ip adresinin decimal değeri 1
    255.255.255.255 ip adresinin decimal değeri 4294967295 dir . yani (2^8)^4 değerine eşittir.

    IP adresleri matematiksel olarak bu şekilde oluşturulur.

    Ilk fonksiyonun :

    function fakeip(){ return long2ip( mt_rand(0, 65537) * mt_rand(0, 65535) ); }
    2^16 * 2^16 = 2^32 = (2^8) ^4 yani dünyadaki 0.0.0.0 dan 255.255.255.255 e kadar ip adreslerinin decimal değerinden herhangi birini seç ve bunu ip ye çevir demiş ;

    return long2ip ( random bir değer seç : 4294967295 içinden ) örnek 1283432323 seçti diyelim https://www.browserling.com/tools/dec-to-ip adresinden bakarsan çevirdiği ip : 76.127.159.131


    peki bu arkadaş bunla ne yapmış ;


    curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: ".fakeip(),"X-Client-IP: ".fakeip(),"Client-IP: ".fakeip(),"HTTP_X_FORWARDED_FOR: ".fakeip(),"X-Forwarded-For: ".fakeip()));


    siteler cloudflare gibi servislerden geçtiği sırada şu şekilde çalışır :

    Siz ----> (Sizin IP adresiniz) cloudflare ----------> (Cloudflare ip adresi) sunucu

    ancak sunucu ziyaretçilerin ip sini bilmek ister. Cloudflare kendi ipsi yerine sizin ip adresiniz ile istek açsa cevap size döner o da TCP protokolunde bir trafiğin tamamlanmasına müsade etmez ;
    Çünkü TCP de
    SYN client gönderdiğinde Sunucu ACK cevaplar Client tekrar SYN ACK gönderir bu paketler gönderilirken SYN paketinde Sequnece numarası vardır geriye Sequence numarasına + paket içindeki veri kadar eklenerek Acknowledgement numarasında geri almak ister ve sunucu ACK paketini gönderirken random bir sequence numarası ekler .
    Bu sebep ile cloudflare sizin ip niz ile cagrıyı sunucuya iletirise sunucu sizin cloudflare ile aranızdaki siz de cloudflare ile sunucu arasındaki paketlerde yer alan seq / ack_seq numaralarını beklemediğiniz ve bilmediğiniz için protokol kötü trafik olarak dökülecektir.

    Bu durumda cloud flare gibi proxyler sitelere sizin ip bilginizi :
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: ".fakeip(),"X-Client-IP: ".fakeip(),"Client-IP: ".fakeip(),"HTTP_X_FORWARDED_FOR: ".fakeip(),"X-Forwarded-For: ".fakeip()));

    bu şekilde Client-ıp / x-client-ip / x-forward-for şeklinde iletir. Sunucu da buradan aaaaaaa arkadaş client bu ama istek proxyden geliyor der. Ziyaretçi ip si olarak paketin içindeki bu header daki ip yi kaydeder ama cevabı proxy e verir

    Sizin yazdığınız kod ile acılan istek de sunucu sizi Proxy sanacaktır cloudflare gibi ama ziyaretçi olarak random seçilen ip yi kaydedecektir böylece sunucuda kendi ip iziniz kalmayacak.

    Kod bu işe yarıyor paylaştığınız


    Bilemiyorum açıklayıcı oldumu ama bu konuya bir ansiklopedi yazılır o yüzden soru çok açık cevap vermek zor



    Edit :

    Burada peki sunucu kime cevap verecek nasıl seçiyor diyen olursa ;

    PHP bir yazılım dili ve framework dür ona paketi apache / nginx / litespeed / IIS vs iletir. PHP zaten bağlanan ipye değil paket içindeki veriye bakar.
    TCP paketleri
    Head room + Ethernet Options + IP Options + TCP Options + Payload + Tail room
    şeklinde oluşutur . php sadece payload ile ilgilienir

    Apache ise IP optionsdan source / destination ip ve tcp options dan dinlediği porta gelen istekleri TCP optionsdan okuyup kaydeder örnek :

    37.123.98.12 : 5670 -> 88.12.33.33:80 portuna gelen istek
    IP : TCP.OPT -> IP.TCP.opt içerisinde yer alır ve açık 5670 portuna cevabı php işini bitirince geri verir :

    88.12.33.33:80 -> 37.123.98.12 : 5670 şeklinde

    bu yuzden trafik karışmadan , gerçek bir protokol el sıkışması ile yukarıdaki method sizi sunucuya fake tanıtır

    Ama amatörler kanar profesyoneller bunu yemez
  • 30-09-2017, 07:27:55
    #6
    spdnet adlı üyeden alıntı: mesajı görüntüle
    Can sıkıntısından bir cevap yazayım devamına katılamam muhtemelen ;

    Öncelikle IP adresleri

    255.255.255.255 -> 2^8 x 2^8 x 2^8 x 2^8 kombinasyona sahiptir (v4 için söylüyorum) bu kombinasyon kapsamında
    http://www.ipaddressguide.com/ip
    0.0.0.1 ip adresinin decimal değeri 1
    255.255.255.255 ip adresinin decimal değeri 4294967295 dir . yani (2^8)^4 değerine eşittir.

    IP adresleri matematiksel olarak bu şekilde oluşturulur.

    Ilk fonksiyonun :

    function fakeip(){ return long2ip( mt_rand(0, 65537) * mt_rand(0, 65535) ); }
    2^16 * 2^16 = 2^32 = (2^8) ^4 yani dünyadaki 0.0.0.0 dan 255.255.255.255 e kadar ip adreslerinin decimal değerinden herhangi birini seç ve bunu ip ye çevir demiş ;

    return long2ip ( random bir değer seç : 4294967295 içinden ) örnek 1283432323 seçti diyelim https://www.browserling.com/tools/dec-to-ip adresinden bakarsan çevirdiği ip : 76.127.159.131


    peki bu arkadaş bunla ne yapmış ;


    curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: ".fakeip(),"X-Client-IP: ".fakeip(),"Client-IP: ".fakeip(),"HTTP_X_FORWARDED_FOR: ".fakeip(),"X-Forwarded-For: ".fakeip()));


    siteler cloudflare gibi servislerden geçtiği sırada şu şekilde çalışır :

    Siz ----> (Sizin IP adresiniz) cloudflare ----------> (Cloudflare ip adresi) sunucu

    ancak sunucu ziyaretçilerin ip sini bilmek ister. Cloudflare kendi ipsi yerine sizin ip adresiniz ile istek açsa cevap size döner o da TCP protokolunde bir trafiğin tamamlanmasına müsade etmez ;
    Çünkü TCP de
    SYN client gönderdiğinde Sunucu ACK cevaplar Client tekrar SYN ACK gönderir bu paketler gönderilirken SYN paketinde Sequnece numarası vardır geriye Sequence numarasına + paket içindeki veri kadar eklenerek Acknowledgement numarasında geri almak ister ve sunucu ACK paketini gönderirken random bir sequence numarası ekler .
    Bu sebep ile cloudflare sizin ip niz ile cagrıyı sunucuya iletirise sunucu sizin cloudflare ile aranızdaki siz de cloudflare ile sunucu arasındaki paketlerde yer alan seq / ack_seq numaralarını beklemediğiniz ve bilmediğiniz için protokol kötü trafik olarak dökülecektir.

    Bu durumda cloud flare gibi proxyler sitelere sizin ip bilginizi :
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: ".fakeip(),"X-Client-IP: ".fakeip(),"Client-IP: ".fakeip(),"HTTP_X_FORWARDED_FOR: ".fakeip(),"X-Forwarded-For: ".fakeip()));

    bu şekilde Client-ıp / x-client-ip / x-forward-for şeklinde iletir. Sunucu da buradan aaaaaaa arkadaş client bu ama istek proxyden geliyor der. Ziyaretçi ip si olarak paketin içindeki bu header daki ip yi kaydeder ama cevabı proxy e verir

    Sizin yazdığınız kod ile acılan istek de sunucu sizi Proxy sanacaktır cloudflare gibi ama ziyaretçi olarak random seçilen ip yi kaydedecektir böylece sunucuda kendi ip iziniz kalmayacak.

    Kod bu işe yarıyor paylaştığınız


    Bilemiyorum açıklayıcı oldumu ama bu konuya bir ansiklopedi yazılır o yüzden soru çok açık cevap vermek zor



    Edit :

    Burada peki sunucu kime cevap verecek nasıl seçiyor diyen olursa ;

    PHP bir yazılım dili ve framework dür ona paketi apache / nginx / litespeed / IIS vs iletir. PHP zaten bağlanan ipye değil paket içindeki veriye bakar.
    TCP paketleri
    Head room + Ethernet Options + IP Options + TCP Options + Payload + Tail room
    şeklinde oluşutur . php sadece payload ile ilgilienir

    Apache ise IP optionsdan source / destination ip ve tcp options dan dinlediği porta gelen istekleri TCP optionsdan okuyup kaydeder örnek :

    37.123.98.12 : 5670 -> 88.12.33.33:80 portuna gelen istek
    IP : TCP.OPT -> IP.TCP.opt içerisinde yer alır ve açık 5670 portuna cevabı php işini bitirince geri verir :

    88.12.33.33:80 -> 37.123.98.12 : 5670 şeklinde

    bu yuzden trafik karışmadan , gerçek bir protokol el sıkışması ile yukarıdaki method sizi sunucuya fake tanıtır

    Ama amatörler kanar profesyoneller bunu yemez

    ustam bende amatörüm çok anlamıyorum hatta php den hiç anlamıyorum desem yeri var kendimi geliştirmeye çalışıyorum. O fakeip yazılan satırı fake değilde kullanıcının keni ipi gelecek şekilde ayarlamak istiyorum bilmediğim için yapamıyorum r10'da bir üstadımızdan yardım bekliyorum.
  • 30-09-2017, 13:03:41
    #7
    YusufKURT adlı üyeden alıntı: mesajı görüntüle
    ustam bende amatörüm çok anlamıyorum hatta php den hiç anlamıyorum desem yeri var kendimi geliştirmeye çalışıyorum. O fakeip yazılan satırı fake değilde kullanıcının keni ipi gelecek şekilde ayarlamak istiyorum bilmediğim için yapamıyorum r10'da bir üstadımızdan yardım bekliyorum.
    buu hiç yapmasanız zaten kullanıcının kendi ip si ile gider. Oyleyse bu kodu kullanmaktaki amac ne ?
  • 30-09-2017, 17:59:15
    #8
    Üyeliği durduruldu
    YusufKURT adlı üyeden alıntı: mesajı görüntüle
    Selam elimde bir kod var fakeip diye yazmış yazan siteye giren kişinin ipini nasıl çekerim bu kodu bana düzeltebilirmisiniz.

    <?
    function fakeip(){ 
        return long2ip( mt_rand(0, 65537) * mt_rand(0, 65535) );  
    }
    function Get_File($url) {
        $timeout = 30;
        $cerez = "cookie.txt";
        $useragent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0";
        $headers = array(
            'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Cache-Control: private, max-age=0',
            'Connection: keep-alive',
            'Keep-Alive: 115',
            'Accept-Language: en-US;q=0.6,en;q=0.4',
        );
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: ".fakeip(),"X-Client-IP: ".fakeip(),"Client-IP: ".fakeip(),"HTTP_X_FORWARDED_FOR: ".fakeip(),"X-Forwarded-For: ".fakeip())); 
        curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cerez);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cerez);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_AUTOREFERER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 15);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }
    Yardımcı olacak üstatlarıma şimdiden teşekkürler
    Bununla gerçek ip adresini alamazsın zaten gerçek ip alınmasını engellemek için yazılmış bir fonksiyon o.

    Gerçek ip adresini şu kod ile alırsın :

    <?php
    echo $_SERVER['REMOTE_ADDR'];
    ?>
    Fonksiyon halinde istersen de :
    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;
    }
    Fonksiyonu kullanmak için :

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