CURL przez proxy, VPN, albo dynamiczne IP?

0

WItam,

Czy jest mozliwe zmiana addressu IP w CURL? Czy mozna np wykupic jakies dynamiczne IP i "wstrzykiwac" to do CURL'a? Albo proxy? Tylko, ze te bramki i tak musialy by sie zmieniac. Powiedzmy, ze musze wykonac 100 requestow do tej samej strony www. To chce, zeby kazde 10 requestow wyszlo z innego IP.

2

jak masz internet z dynamicznym IP (WAŻNE aby nadawał nowy adres IP po resecie połączenia) to po 10 połączeniach ze stroną resetujesz połączenie i masz nowy IP. Jeśli nie masz takiej możliwości to możesz użyć darmowych proxy (o ile połączenie jest rzeczywiście do strony bo darmowe proxy zazwyczaj przekierowują określone porty, np. 80)

0

nie wiem, czy można powiedzieć o darmowych proxy, że są niezawodne. Pewnie jakieś płatne są pewniejsze. Nie ma znaczenia jak (czym) się łączysz - wszystkie połączenia wychodzą z Twojego adresu IP i tak to jest widziane na zewnątrz. Jeśli chcesz być widoczny na zewnątrz pod innym IP to albo proxy albo VPN

0

Jak w tym przypadku bedzie dzialac VPN? I co Twoim zdaniem pewniejsze? Jak VPN bedzie zmianial moj adres?

0

VPN MOŻE działać tak, że cały ruch z Twojego kompa będzie przechodził przez bramkę VPNu i wtedy ruch wychodzący od Ciebie będzie miał adres zewnętrzny taki jaki ma bramka a nie taki jaki masz Ty. Pewniejsze to zależy od uptimea usług. Uważam, że proxy jest dużo prostsze do ogarnięcia bo to zrobisz na poziomie PHP - http://stackoverflow.com/questions/5211887/how-to-use-curl-via-a-proxy a z VPNem to by się trzeba przełączać co chwile na inne. Możesz też potestować darmowe proxy - trochę ich jest

0

To chyba jednak nie rozwiazuje mojego problemu. Chodzi o to, ze ja musze schowac swoje IP przed zewnetrznym serwerem, dlatego uzywam proxy. Z tego co przeczytalem i sam teraz kombinuje to ponoc zapomoca CURLa nie jest to mozliwe.

0

Aby zapewnić sobie w miarę losowy IP, mógłbyś spróbować użyć sieci TOR do połączenia się z innym serwisem. To rozwiązanie posiada jednak również minusy - sieci tor są blokowane przez niektóre serwery i są dosyć wolne. Trzeba by było przetestować, czy to rozwiązanie się sprawdzi.
[Paweł]

0

@abrakadaber Nie jestem w stanie w ogole polaczyc sie przez proxy do jakiejkowiel strony. Dzialam na razie na localhoscie/xamppie.



$url = 'http://google.com';

$proxy = '122.10.84.238';
$port = '80';



$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYPORT, $port);
// curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
// curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

curl_setopt($ch, CURLOPT_TIMEOUT, 500);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 500);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$result = curl_exec($ch);
$info = curl_getinfo($ch);
$error = curl_error($ch);

curl_close($ch);

Moze jakies pomysly?

0

Zastanawia mnie port 80 - mało proxy na tym porcie nasłuchuje, lecz jest to możliwe. Nie wiem, co to za proxy, w jakim trybie nasłuchuje - widzę, że ustawiałeś SOCKS%, teraz jest zakomentowany, a moim zdaniem nie powinien być.

Ponadto w tym przypadku na 90% jest autoryzacja jakiegoś typu - nie wiem jaka.

$url = 'http://dynupdate.no-ip.com/ip.php'; 
$proxy = '127.0.0.1:8888'; 
//$proxyauth = 'user:password'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_PROXY, $proxy); 
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
$curl_scraped_page = curl_exec($ch); 
curl_close($ch); 
echo $curl_scraped_page; 

[Paweł]

0

Ja zastanawiam sie nad kilkoma rzeczami. Np dlaczego serwer z ktorego chce pobrac dne przez curl mnie blokuje. Czym sie rozni curl od requesta z browser?
No i w dalszym ciagu nie dziala curl z proxami. nie kumam czemu. Nie moge sie polaczyc.

0

Jeśli curl nie działa bez proxy (co wynika z pierwszej części Twojej wypowiedzi) to tym bardziej nie będzie działał z proxy.

Może daj jakiś przykład (serwer, plik, namiar na proxy) aby można było Ci pomóc

0

Kombinuję z kodem poniżej na wiele sposobów. Generalnie nie może się połączyć przez proxy. Jak zmienie IP to mogę normalnie się połączyć ze stroną, ale przez proxy zwraca już http code: 302.

$loginpassw = 'login:password'; //your proxy login and password here
$proxy_ip = '149.255.154.4'; //proxy IP here
$proxy_port = 8080; //proxy port that you use with the proxies
$url = 'http://google.com'; //URL to get

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0); // no headers in the output
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // output to variable
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_PROXY, $proxy_ip);
// curl_setopt($ch, CURLOPT_PROXYUSERPWD, $loginpassw);
$data = curl_exec($ch);
curl_close($ch);

echo $data;
0

Wygląda na to, jakby Google wyłączył usługi z protokołem http - należy użyć https.
Spróbuj dodać to:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 

[Paweł]

0

ale 302 to jest REDIRECT a nie błąd i przenosi Cię do https://www.google.pl/

0

Wiem, że jest to redirect - curl odbiera pojedynczą odpowiedź po requeście - nie wykona redirecta, a Google próbuje przekierować na https - jeśli skonfigurujesz połączenie od razu dla https, wtedy Google odpowie statusem 200, a nie 302.

[Paweł]

0

Pomylilem sie. Z zablokowanego IP przez serwis CURL zwraca blad:
Failed to connect to 149.255.154.4 port 8080: Timed out

Z innego IP, juz nie zablokowanego moge sie polaczyc bez problemy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1