PHP => C# 45 Satırlık Bir Kodun Çevrilmesi Gerekiyor.
-
<?php ini_set('max_execution_time', 120); date_default_timezone_set('America/Los_Angeles'); $uri = 'http://google.com'; $data_string=''; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$uri); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0"); curl_setopt($ch, CURLOPT_ENCODING , "gzip"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIESESSION, true); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__)."/cook.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__)."/cook.txt"); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,30); curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'write_function'); curl_setopt ($ch, CURLOPT_AUTOREFERER, false); curl_setopt($ch, CURLOPT_PROXY, "socks5://127.0.0.1:9050/"); if(curl_exec($ch)){ echo var_dump($data_string); /*$obj = json_decode($data_string); if($obj->responseStatus == 200) echo "yes"; else echo "no";*/ } else { $checker=0; } curl_close($ch); unset($ch); function write_function($handle, $data) { global $data_string; $data_string .= $data; if (strlen($data_string) > 1048576) { return 0; } else return strlen($data); } ?>php
googleden veri çeken bir arkadaş bunu göndermiş ama PHP den hiç anlamıyorum. bilen biri varsa ve çevirirse teşekkür ederim şimdiden :)
-
Hocam bunu bir php destekleyen hosting içerisinde test edebilirsin. Orada da sonuç olarak ne yaptığına dair fikir edinebilirsin.
Php'den ben de çok fazla anlamıyorum ama konu curl ile veri çekme eylemine benziyor.
-
WebSocket gibi duruyor bence :D C# da farklı bir socket yapısı olsa gerek :D
-
anladığım kadarıyla google da ypaılan sonuçları alıp web socks5 locale atıyor sanırım. Çalıştırdım ama eksik birşeyler var
-
PLaXToR bunu yazdı
anladığım kadarıyla google da ypaılan sonuçları alıp web socks5 locale atıyor sanırım. Çalıştırdım ama eksik birşeyler var
Yok hocam aslında Curl un o proxy üstünden çıkmasını sağlıyor.Yani ip ile değil o proxy ile çıkıyor o proxy de sorguları yapıyor.
Aşağıdada gelen verinin length değerini alıp 1048576 bununla karşılaştırıyor.Return olarak da 0 dönmüş normalde 0 başarılı bir dönüş değil miydi ? Neyse eğer 0 ise değeri döndürmüyor eğer 0 değil ise aldığı veriyi ekrana döküyor anladığım kadarıyla.
COOkiejar falan cookie dosyalarının bulunduğu file oradan set edilmiş bir cookie ile request yapıyor büyük ihtimal.
neyse php bilmiyorum ama mantığı bu şekilde gibiEdit:45 satırlık php kodu c# da 100-150 olur herhalde:D
0x656e tarafından 03/Eki/16 20:10 tarihinde düzenlenmiştir -
9050 tor proxy'nin büyük ihtimal, default olarak öyle çünkü.
"C:\Users\xxxxx\Tor Browser\Browser\TorBrowser\Tor\tor.exe" -f "C:\Users\xxxxx\Tor Browser\Browser\TorBrowser\Data\Tor\torrc"
.bat dosyası yapıp çalıştırabilirsin.
Bu da torrc dosyasının içeriği xxxxx ile belirtilen yerleri kendine göre değiştireceksin tabi ki.
https://gist.github.com/anonymous/5bbaf1f445bace4bfddfa094c1d7d42d
SOCKS5 proxy direkt olarak C# WebClient ya da HttpWebRequest'de kullanılamıyor. Biraz araştırman lazım ( http://stackoverflow.com/questions/13122369/use-webclient-with-socks-proxy )
strlen($data_string) > 1048576
Olayını ise şu şekilde düşündüm. 1048576 uzunluklu bir sayfa Google'un sen botsun, hatalı sorgu tarzı bir sayfasının uzunluğu olabilir o yüzden spesifik bir uzunluk oluşunca ona return 0 verdirtmiş ki boş dönmüş gibi davransın diye.
-
Googleden veri çekmek istiyorsun ve bunu C# ile mi yapmak istiyorsun ne istiyorsun onu söyle belki yardımcı olabiliriz ;)