Szybka odpowiedź
Jak utrzymać ten sam IP miasta przy kilku żądaniach?
Sesje sticky EuroCity Proxies utrzymują jeden wyjściowy IP do 30 minut (IP może zmienić się wcześniej, na przykład gdy urządzenie rezydencjalne przejdzie offline). Dodaj -session-<id>-ttl-<minutes> do nazwy użytkownika miasta, na przykład USERNAME-country-fr-city-lyon-session-lyon1-ttl-10. Od października 2026 ttl można ustawić do 30. Używaj jednego identyfikatora sesji na miasto i na zadanie.
Czym różnią się nazwy użytkownika rotacyjne i sticky?
| Tryb | Przykład nazwy użytkownika | Zachowanie wyjściowego IP | Dobre do |
|---|---|---|---|
| Rotacyjny | USERNAME-country-pl-city-krakow | Nowe połączenie zwykle otrzymuje inny IP w mieście | Niezależne ładowania stron, jedno na połączenie |
| Sticky, 10 minut | USERNAME-country-pl-city-krakow-session-krk1-ttl-10 | Ten sam IP do 10 minut, nawet przy nowych połączeniach | Krótkie sprawdzenie: strona, dwa kliknięcia, zrzut ekranu |
| Sticky, 30 minut | USERNAME-country-pl-city-krakow-session-krk2-ttl-30 | Ten sam IP do 30 minut | Dłuższy test własnej witryny, np. realizacja zamówienia w trybie testowym |
Co robi sesja sticky?
Sesja sticky przypisuje identyfikator sesji do jednego wyjściowego IP na określony czas. Każde połączenie używające tej samej nazwy użytkownika, w tym ten sam id, wychodzi przez to IP, dopóki nie wygaśnie ttl. IP może zmienić się wcześniej, np. gdy urządzenie domowe za nim zostanie offline.
Bez identyfikatora sesji brama działa w trybie rotacyjnym. Każde nowe połączenie otrzymuje IP z puli, zwykle inne; aby otrzymać nowe IP przy każdym żądaniu, wysyłaj jedno żądanie na połączenie (wyłącz keep-alive). Rotacja sprawdza się przy niezależnych żądaniach. Sesja sticky sprawdza się przy sekwencji postrzeganej jako jeden odwiedzający z jednego miejsca. Przykładem jest sklep, który trzyma Twój obszar dostawy w cookie.
Sesje zachowują wybrane miasto z listy miast; połącz je z targetowaniem ASN i sprawdź wyjście za pomocą sprawdzania miasta proxy. Plany są na stronie cennika.
Po co używać jednej sesji na miasto i na zadanie?
Bo wtedy każde zadanie ma jasny start, znane wyjście i czyste zakończenie. Nazwij id od miasta i zadania: lyon1 dla pierwszego sprawdzenia Lyonu, krk2 dla drugiego sprawdzenia Krakowa. Identyfikatory sesji przyjmują od 1 do 32 liter lub cyfr.
Dzięki temu wyniki są czytelne. Gdy strona Lyonu wygląda źle, wiesz, które wyjście ją obsłużyło, i możesz sprawdzić to IP. To także nie pozwala jednej długotrwałej sesji mieszać kilku sprawdzeń, cookies i koszyków na tym samym adresie. Gdy zadanie się kończy, zamknij jego klienta i rozpocznij następne zadanie z nowym id.
Czy wybrać ttl-10 czy ttl-30?
Wybierz najkrótszy ttl, który pokrywa zadanie: ttl-10 dla większości sprawdzeń, ttl-30 tylko dla długich przepływów. Sprawdzenie strony miasta, produktu i slotu dostawy zwykle mieści się w dziesięciu minutach. Test własnej realizacji zamówienia, z formularzami i krokiem płatności w trybie testowym, może wymagać trzydziestu.
Nie planuj na pełny ttl. Odczytaj wyjściowe IP na początku i na końcu zadania. Jeśli się zmieniło, urządzenie wyszło offline; powtórz zadanie raz z nowym id. Maksimum to 30 minut, więc podziel dłuższą pracę na kilka zadań.
Jak keep-alive zmienia wyjściowe IP?
Keep-alive utrzymuje jedno połączenie otwarte, a jedno połączenie utrzymuje jedno wyjście. Połączenia HTTP/1.1 są domyślnie trwałe zgodnie z RFC 9112, więc klienci je wykorzystują ponownie, chyba że każano je zamknąć.
- requests:
Sessionponownie wykorzystuje połączenia ze swojej puli. Dokumentacja Requests opisuje keep-alive jako automatyczne w ramach sesji. - httpx:
Clientutrzymuje swoje połączenia otwarte w ten sam sposób. - undici (Node.js): bezczynny socket pozostaje otwarty domyślnie przez 4 sekundy (
keepAliveTimeout), dłużej, jeśli serwer wyśle wskazówkę keep-alive.
W sesji sticky to nie ma znaczenia: id utrzymuje IP nawet przy nowym połączeniu. W przypadku rotacyjnej nazwy użytkownika ma. Żądania wysłane przez jedno otwarte połączenie dzielą jedno wyjście. Aby uzyskać nowe IP dla każdego żądania, zamykaj połączenie lub otwieraj nowego klienta za każdym razem.
# pip install requests
from urllib.parse import quote
import requests
HOST = "gw.eurocityproxies.com"
PORT = 7777
PASSWORD = quote("PASSWORD", safe="")
def session_for(country: str, city: str, task: str, ttl: int = 10) -> requests.Session:
user = f"USERNAME-country-{country}-city-{city}-session-{task}-ttl-{ttl}"
proxy = f"http://{user}:{PASSWORD}@{HOST}:{PORT}"
s = requests.Session()
s.trust_env = False # ignore HTTP_PROXY / HTTPS_PROXY set on your machine
s.proxies = {"http": proxy, "https": proxy}
return s
def exit_ip(s: requests.Session) -> str:
return s.get("https://ipinfo.io/json", timeout=30).json()["ip"]
tasks = [("fr", "lyon", "lyon1"), ("pl", "krakow", "krk1"), ("nl", "the_hague", "hag1")]
for country, city, task in tasks:
with session_for(country, city, task) as s:
start = exit_ip(s)
page = s.get("https://YOUR-SITE.example/", timeout=30)
end = exit_ip(s)
note = "same exit" if start == end else "exit changed: repeat once with a new id"
print(city, start, page.status_code, note)Czy sesje pozwalają obejść limity zapytań witryny?
Nie. Sesje i rotacja wybierają, skąd pochodzą Twoje żądania; nie zmieniają tego, na co witryna pozwala. Prowadź jedną sesję na miasto i na przebieg, w umiarkowanym tempie. Rotacja nie jest sposobem na obejście limitów zapytań witryny.
Jeśli strona zawodzi, poczekaj i ponów próbę raz później. Jeśli witryna wciąż odmawia, zatrzymaj się i skorzystaj z jej oficjalnej drogi, takiej jak API lub partner danych. Polityka dopuszczalnego użytkowania wymienia, do czego usługa nie może być używana.
Ile ruchu zużywają sesje sticky?
Sesja sama w sobie nic nie kosztuje: płacisz tylko za wysłane i odebrane dane. Użytkowanie liczy wszystkie dane wysłane i odebrane przez proxy (upload i download, wraz z nagłówkami). 1 GB = 1 000 000 000 bajtów. Próby połączenia, które nie dotrą do celu, nie są liczone. Krótkie sprawdzenie miasta z jedną stroną i dwoma sprawdzeniami IP zwykle zużywa kilka megabajtów lub mniej, w zależności od strony.
Ruch jest wspólny dla wszystkich miast i sesji Twojego konta. Opłacony z góry ruch rezydencjalny i rotacyjny mobilny nigdy nie wygasa: niewykorzystane GB pozostają na Twoim koncie, dopóki ich nie wykorzystasz. Plany zaczynają się od 0,95 USD za 1 GB na stronie cennika.
Sesje sticky: pytania
Jaka jest najdłuższa sesja sticky?
Trzydzieści minut. Ustaw -ttl-30 w nazwie użytkownika. IP może jednak zmienić się wcześniej, jeśli urządzenie domowe za nim wyjdzie offline. Odczytaj wyjściowe IP na początku i na końcu każdego zadania.
Jak uzyskać nowe IP w tym samym mieście?
Zmień identyfikator sesji, np. z lyon1 na lyon2, i zachowaj resztę nazwy użytkownika. W przypadku rotacyjnej nazwy użytkownika zamiast tego otwórz nowe połączenie.
Czy dwa skrypty mogą współdzielić jedną sesję?
Sesja jest identyfikowana przez nazwę użytkownika, id i ttl, więc dwa skrypty wysyłające dokładnie te same wartości proszą o tę samą sesję sticky. Sprawdź wyjściowe IP w każdym skrypcie, zanim na nim polegasz, i używaj osobnych id dla osobnych zadań.
Czy sesja sticky zachowuje to samo miasto?
Tak. Miasto jest częścią nazwy użytkownika, a sesja zachowuje jedno wyjściowe IP z targetowania tego miasta. Dostępność miast jest zmienna; realizacja zamówienia pokazuje, co jest online.
Dlaczego moje IP zmieniło się po dwóch minutach z ttl-10?
Połączenia domowe wychodzą offline: router restartuje się, urządzenie zasypia, dostawca przydziela adres ponownie. Sesja dostaje wtedy nowe wyjście. Powtórz zadanie raz z nowym id; jeśli dzieje się to przy każdym zadaniu, napisz do supportu z godzinami i IP.
Czy sesje sticky kosztują więcej niż rotacyjne?
Nie. Oba korzystają z tego samego ruchu rozliczanego za GB. Targetowanie po kraju i mieście w każdym planie; w Stanach Zjednoczonych także po stanie i kodzie ZIP; targetowanie po ASN bez dodatkowych kosztów. Dostępność miast jest zmienna.
Źródła (5)
- RFC 9112 HTTP/1.1, sekcja 9.3 Persistence — IETF (June 2022, checked 2026-10-18)
- Requests: Advanced Usage, Session Objects i Keep-Alive — Requests (checked 2026-10-18)
- undici Client: keepAliveTimeout (domyślnie 4e3 ms) — Node.js project (checked 2026-10-18)
- HTTPX: Proxies — Encode (checked 2026-10-18)
- Punkt końcowy JSON IPinfo — IPinfo (checked 2026-10-18)