Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Zalogowanie na zewnętrzny serwis z IP odwiedzającego
pytajniczek
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.08.2011

Ostrzeżenie: (0%)
-----


Witam
Potrzebuję z pewnego serwisu, dajmy na to a.pl pobrać plik. Aby pobrać plik muszę najpierw do niego się zalogować. Z tym nie ma problemu (curl) jak i również nie mam problemu z pobraniem pliku (robię to za pomocą przekierowania 301). Problem jest następujący - plik jest generowany dla IP, który go chce pobrać. Czyli - na localhoscie wszystko działa pięknie (oczywiście jeśli ja pobieram plik). Schody zaczynają się, gdy postawię skrypt na serwerze. Wtedy IP pobierane jest z serwera a nie od użytkownika który wszedł na skrypt (nasz kochany curl). I w wyniku czego - fakt, dostanę adres linku, ale go nie pobiorę, bo serwis a.pl nie przypisał do niego adresu IP użytkownika tylko mojego serwera.
Mam jedno rozwiązanie - poprzez streaming pliku. Czyli serwer pośredniczy w przesyłaniu pliku do użytkownika. Takie rozwiązanie niestety mnie nie satysfakcjonuje, ponieważ zżera transfer z mojego serwera i prędkość jest uzależniona od mojego serwera. Jak zrobić, aby adres IP był pobrany nie z serwera a od użytkownika który wszedł na mój skrypt? Proszę tylko nie pisać, że się nie da - widziałem jak takie coś działało na pewnej stronie, jednak skryptu w .php nie pobiorę, żebym mógł sprawdzić jak to jest zrobione smile.gif
Go to the top of the page
+Quote Post
cycofiasz
post
Post #2





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


To jest zabezpieczenie strony przed takimi opryszkami jak ty a na tym forum z tego co wiem nie wspiera się takich działań.
Go to the top of the page
+Quote Post
pytajniczek
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.08.2011

Ostrzeżenie: (0%)
-----


Yy to jest normalne pytanie z programowania. Równie dobrze mógłbym podać sytuację, gdy użytkownik za pomocą mojego serwera i mojego skryptu dodaje jakąś wiadomość na innej stronie. Dlaczego ta strona ma mieć IP mojego serwera a nie IP użytkownika który korzysta z mojego skryptu?
Ja mam tylko pytanie czy i jak można takie coś zrobić... A kwestię, że serwer a.pl ma takie a nie inne zabezpieczenia pozostawiam to bez komentarza. Wielu tutaj się pytało o pobieranie danych z innych stron - i jakoś oni dostawali pomoc.
Go to the top of the page
+Quote Post
rav1989
post
Post #4





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 5.07.2007

Ostrzeżenie: (0%)
-----


o ile wiem curl wspiera proxy, więc może tą drogą da się to rozwiązać biggrin.gif
Go to the top of the page
+Quote Post
melkorm
post
Post #5





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Możesz zrobić tak jak to robią serwisy od pobierania czyli przekierować usera na stronę downloadu czyli z tekstem "Dziękujemy bla bla bla za pobieranie pliku, pobieranie zacznie się za chwile jeżeli nie kliknij w link"

a w kodzie dajesz meta z refresh na adres z plikiem, gdy przeglądarka wykrywa że jest to plik to nie przechodzi na nową stronę tylko wyskakuje monit z pobieraniem i jest wrażenie że plik jest pobierany z Twojej strony a nie z zew. adresu, a IP idzie użytkownika.


--------------------
Go to the top of the page
+Quote Post
pytajniczek
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.08.2011

Ostrzeżenie: (0%)
-----


Ale to nie jest rozwiązanie - bo ten plik jest dostępny po zalogowaniu a loguję się curlem. Czyli teoretycznie użytkownik jakby ręcznie się zalogował i pobrał ten plik to by chodziło. Ale ja się loguję curlem - a curl podaje IP serwera i użytkownik nie pobierze bo ma inne IP. Na localu u mnie chodzi, na serwerze już nie...
A proxy no to niby by było - ale IP musi być takie jak pobiera plik użytkownik czyli odpada.

Ten post edytował pytajniczek 11.08.2011, 16:37:11
Go to the top of the page
+Quote Post
melkorm
post
Post #7





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


To przy logowaniu ustaw nagłówek IP jako IP użytkownika wink.gif


--------------------
Go to the top of the page
+Quote Post
pytajniczek
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.08.2011

Ostrzeżenie: (0%)
-----


Jakby to było takie proste tongue.gif
Kodzik:
  1. curl_setopt( $wynik, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: ".$_SERVER['REMOTE_ADDR'], "HTTP_X_FORWARDED_FOR: ".$_SERVER['REMOTE_ADDR']));

Nie działa... Myślałem, żeby coś pokombinować z fopen lub fsockopen tylko jak to zrobić? Czyli, że skrypt tak jakby przekazuje plik użytkownikowi ale IP jest nadal serwera - czyli w drugą stronę smile.gif. Tylko, żeby to nie zżerało transferu..
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 12:05