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.