Pośrednik w pobieraniu pliku - ukrywanie prawdziwego IP pobierającego

Odpowiedz Nowy wątek
2011-08-06 23:56
pytajniczek
0

Witam
Mam pewien problem. Dajmy na to mam 2 serwery: A i B. Potrzebuję do komputera (C) pobrać plik z serwera A, ale aby serwer A miał IP serwera B a nie C (komputera pobierania).
Czyli:
plik na serwerze A-> pośrednik B -> docelowy C. Z tym, że serwer A nie może poznać adresu IP C, tylko B.
Jak takie coś zrobić? I to jeszcze bez zużywania transferu (lub jakiś minimalny) serwera B?

Pozostało 580 znaków

2011-08-07 11:13
Rev
0

Bez zużywania transferu na serwerze B nie da się.


Pozostało 580 znaków

2011-08-07 11:40
pytajniczek
0

A ja słyszałem o skrypcie, który reklamował gość i pisał, że transfer nie jest pobierany z konta serwera B, tylko jakoś przekierowaniem leci (i być może chodzi o allow_url_fopen).
Podam przykład (nie związany ze skryptem który chce zrobić, ale jako przykład): strona xlimit.pl która umożliwia pobieranie plików z RS itd. i piszą:

Nie trać czasu - jako jedyni Nie pobieramy plików na swoje serwery Pobierasz od razu na dysk swojego komputera.

A bezpośrednio na pewno nie jest pobierane z konta premium, bo by musieli mieć tyle kont premium ile pobierających (chodzi o blokowanie IP).
Ale jeśli się teoretycznie wg Ciebie nie da to jak się da zrobić to co pisałem z zużywaniem transferu serwera B? Oczywiście taka opcja, że plik jest najpierw ściągany na serwer B a dopiero później pobierany przez komputer C odpada - ja potrzebuję w czasie rzeczywistym pobierać - bez zajmowania miejsca na serwerze B. I jak taki skrypt zoptymalizować? Bo kiedyś pobrałem jakiś wyszukany na google to pobierało mi tylko np. 8MB, raz 12MB pliku a plik ważył 300... Zależy to od serwera? Jakiś timeout?
Jednak i tak wolałbym jakoś się zapytać o możliwość bez pobierania transferu z serwera B. Może jakieś przekierowanie albo coś - tak aby serwer A nie poznał adresu serwera C.

Pozostało 580 znaków

2011-08-07 12:06
Rev
0

Pośredniczenie w pobieraniu pliku nie znaczy, że serwer pośredniczący musi najpierw cały plik pobrać i zapisać u siebie. Może się to na bieżąco odbywać w częściach, np. 1kb. Wtedy dla użytkownika pobierającego plik będzie to proces transparentny.
Skrypty z Allegro wiele niemożliwych rzeczy już miały robić, opis jest strasznie naciągany jak dla mnie.


Pozostało 580 znaków

2011-08-07 12:19
0

A ja słyszałem o skrypcie, który reklamował gość i pisał, że transfer nie jest pobierany z konta serwera B, tylko jakoś przekierowaniem leci (i być może chodzi o allow_url_fopen).

No tak. Robisz przekierowanie w php i wtedy transfer nie leci, ale ip jest znane.

edytowany 1x, ostatnio: sirkruk, 2011-08-07 12:20

Pozostało 580 znaków

2011-08-07 21:50
pytajniczek
0
Rev napisał(a)

Pośredniczenie w pobieraniu pliku nie znaczy, że serwer pośredniczący musi najpierw cały plik pobrać i zapisać u siebie. Może się to na bieżąco odbywać w częściach, np. 1kb. Wtedy dla użytkownika pobierającego plik będzie to proces transparentny.

A możesz podać przykład takiego rozwiązania w php?

sirkruk napisał(a)

No tak. Robisz przekierowanie w php i wtedy transfer nie leci, ale ip jest znane.

A jak działają np. serwery proxy? IP nie jest znane więc leci transfer? Nie da się jakoś tak oszukać serwera A żeby pobrał IP serwera B ale transfer leciał z A? ;)

Pozostało 580 znaków

2011-08-07 21:55
podstawy
0

HTTP funkcjonuje poziom wyżej niż TCP, opiera się na nim. Proxy po prostu otrzymują zapytania, które przesyłają do zdalnego serwera, odsyłają otrzymany wynik. IP siedzi poniżej TCP, HTTP na tym poziomie nie pracuje, nie da się z jego poziomu ingerować w sposób, który chcesz osiągnać. Poczytaj o podstawach, co to HTTP, co to TCP itd.

Pozostało 580 znaków

2011-08-07 21:59
0
pytajniczek napisał(a)
sirkruk napisał(a)

No tak. Robisz przekierowanie w php i wtedy transfer nie leci, ale ip jest znane.

A jak działają np. serwery proxy? IP nie jest znane więc leci transfer? Nie da się jakoś tak oszukać serwera A żeby pobrał IP serwera B ale transfer leciał z A? ;)

Działają w ten sposób, że pobierają dane, a następnie wysyłają je do użytkownika. A serwer to możesz sobie oszukać na amerykańskim filmie (i to najprawdopodobniej animowanym). Jak myślisz - gdyby każdy mógł się podszyć pod dowolne IP, czy nie byłby to poważny błąd bezpieczeństwa?

Pozostało 580 znaków

2011-08-07 22:14
pytajniczek
0

No to podajcie chociaż przykład kodu jak działa to z wykorzystaniem transferu? Przez jaką funkcję to można zrobić? Oczywiście odpada najpierw ściągnięcie na serwer - najlepiej by było jakby co kilka kb przesyłał no i aby działał nawet na darmowym serwerze (o ile się da), a nie że ściągnie kilka MB i przerwie...

Pozostało 580 znaków

2011-08-07 23:09
0
pytajniczek napisał(a)

No to podajcie chociaż przykład kodu jak działa to z wykorzystaniem transferu? Przez jaką funkcję to można zrobić?

Od groma przykładów. Odczyt pliku przez http nie różni się niczym od odczytu z lokalnego dysku.

pytajniczek napisał(a)

najlepiej by było jakby co kilka kb przesyłał no i aby działał nawet na darmowym serwerze (o ile się da), a nie że ściągnie kilka MB i przerwie..

Jaka jest według Ciebie definicja darmowego serwera?

Pozostało 580 znaków

2011-08-08 09:36
pytajniczek
0
sirkruk napisał(a)

Odczyt pliku przez http nie różni się niczym od odczytu z lokalnego dysku.

Samo fopen nie wystarczy, bo ja nie mam tego pliku na serwerze B. Ja muszę chyba streamingiem dopiero pobierać z A, poprzez B do C. I np. co 50kb zapisywać na serwer B plik, przesyłać go do C i kasować z B i tak od nowa aż do całego pliku. Tylko jak to zrobić? Pisałem już że opcja w której serwer B pobiera najpierw cały plik od serwera A odpada (nie mam miejsca na serwerze B) więc tylko przesyłanie części pliku wchodzi w grę.

sirkruk napisał(a)

Jaka jest według Ciebie definicja darmowego serwera?

Taka, że np. nie mogę pewnie ustawić jakieś limitu timeout czy jakiś zaawansowanych bibliotek, które mogą być potrzebne do mojego pomysłu. Chcę, aby skrypt działał na każdym serwerze (ewentualnie na większości).

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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