Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: how to make a socket connection via a proxy server in php
Forum PHP.pl > Forum > PHP
flashdev
Jak wykonać połączenie socketowe używając proxy?

Czyli np. coś takiego jak poniżej, tak aby być widocznym jako jeden z tych adresów: http://www.proxy4free.com/page1.html

  1. $fp = fsockopen('adres.pl', 123);
  2. fputs($fp, "hi, give me the answer");
  3. while (!feof($fp) ){
  4. echo fgets($fp);
  5. }
  6. fclose($fp);


Uprzedzając docinki niektórych użytkowników tego forum, dodam iż pod poniższym adresem nie znalazłem nic co naprowadziłoby mnie na rozwiązanie.
http://tinyurl.com/m7arzb
flashdev
Cytat(erix @ 21.09.2009, 11:08:38 ) *


Niestety obiekt zwracany przez stream_context_create nie może być użyty dla funkcji fsockopen. Może jest jakiś odpowiednik tej funkcji umożliwiający łaczenie się przez proxy?

Potrzebuję coś takiego jak ponżej, tylko używając proxy. Czyli gdzie wstawić dwie pierwsze zmienne.

  1. $proxy_ip = ...
  2. $proxy_port = ...
  3. $ip = ...
  4. $port = ...
  5. $question = ...
  6. $answer = '';
  7.  
  8. $fp = fsockopen($ip, $port);
  9. fputs($fp, $question);
  10. while (!feof($fp) ){
  11. $answer .= fgets($fp);
  12. }
  13. fclose($fp);
erix
Fakt, przeoczyłem że to fsockopen. ;]

Ale z łaski swojej, mógłbyś uważnie przejrzeć stronę manuala z tą funkcją, naprawdę ciężko?
flashdev
No coś tam znalazłem -> RemoteFopenViaProxy

Zaraz będę to testował.

Edit:
No niestety ta funkcja umożliwia tylko pobranie strony przy użyciu proxy.

W tej chwili na zapytanie -> "php socket connection proxy" google pokazuje na pierwszym miejscu ten temat.
Więc zaczynam wątpić w to, że znajde gdzieś gotową napisaną funkcję.

Nie mam zbyt dużej wiedzy w temacie takich połączeń (jak to działa na niższych wastwach). Czy wykonanie tego jest wogóle możliwie? Czy trzeba do tego jakiś specjalny serwer proxy? Może wypowie sie ktoś kto jest lepiej zorientowany w tym temacie.
erix
Hmm, a nie możesz po prostu otworzyć via fopen + stream_context_create? W sumie używasz tego do odczytu. ;]
flashdev
Cytat(erix @ 21.09.2009, 15:08:30 ) *
Hmm, a nie możesz po prostu otworzyć via fopen + stream_context_create? W sumie używasz tego do odczytu. ;]


Do odczytu używam fgets, z kolei do nawiązania połączenia fsockopen.

Jeżeli wiesz w jaki sposób wykorzystać do tego funkcję fopen + stream_context_create to byłbym wdzieczny za podzielenie się tą wiedzą.

Przypomnę, że żeby miało prawo to działać muszą być wykorzystane poniższe zmienne:
$proxy_ip, $proxy_port, $ip, $port, $question
erix
Cytat
Jeżeli wiesz w jaki sposób wykorzystać do tego funkcję fopen + stream_context_create to byłbym wdzieczny za podzielenie się tą wiedzą.

A manuala widział?
Cytat
resource fopen ( string filename, string mode [, bool use_include_path [, resource context]] )


Cytat
Przypomnę, że żeby miało prawo to działać muszą być wykorzystane poniższe zmienne:
$proxy_ip, $proxy_port, $ip, $port, $question

stream_context_create już widziałeś. ;]
flashdev
Ty mnie chyba uważasz za idiotę?
Zapłacę Ci za napisanie tego kodu, napisz na PW.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.