IP Router
Jak to działa · dla opornych

Strony oceniają Cię po IP. To centrala, która wybiera, jakie IP nosi Twój agent.

Każde urządzenie w internecie ma adres. Wyszukiwarka, sklepy, reklamy i serwisy używają tego adresu, żeby zdecydować, co widzisz — walutę, język, pozycje, a nawet czy strona w ogóle się załaduje. Agent AI w datacenter ma jeden adres: to datacenter. Bez zlokalizowanego wyjścia każde pobranie wygląda, jakby wyszło z jednego budynku.

Prosisz o kraj albo miasto. IP Router wybiera tam wyjście, wysyła żądanie przez to IP i oddaje stronę. Ten sam mózg dla agenta JSON i prawdziwej przeglądarki.

Pomysł

Cztery fakty, a potem możesz korzystać z reszty.

Strona nigdy nie widzi Twojego laptopa

Widzi wyjściowe IP. Zmień wyjście, zmieni się strona — ceny, SERP, lokalizator sklepów, paywall, wszystko.

Kraj to nie język

cc-JP stawia Cię na japońskim IP. lang-ja mówi stronie, że czytasz po japońsku. Zwykle chcesz obu.

Stała sesja znaczy „ta sama osoba”

Logowania, koszyki i ciasteczka giną, jeśli IP zmieni się w trakcie. sessid przypina Cię do jednego wyjścia, aż wygaśnie.

Dwoje drzwi, jeden kernel

Agenci wysyłają POST JSON na /api/v1/fetch. Przeglądarki i curl mówią CONNECT na :7777. Oba wołają selectRoute.

Słowa

Tuzin terminów, których używa konsola.

IP / wyjście
Adres, który widzi strona. Nie Twój laptop, nie host agenta — ostatni skok, który wyszedł z IP Router.
cc (kraj)
Kod kraju ISO. GB to Wielka Brytania, DE to Niemcy, JP to Japonia. Tym wybierasz rynek.
miasto
Dokładniej niż kraj. Londyn kontra Manchester, Nowy Jork kontra Austin. Spacje w nazwie użytkownika stają się podkreśleniami: city-new_york.
język
Nagłówek Accept-Language. Pytanie strony „w jakim języku czytasz?”. Niezależne od IP.
sessid (sesja stała)
Nazwa, której używasz ponownie, żeby każdy skok zadania szedł tym samym wyjściem. Domyślny TTL to 10 minut; sesstime go nadpisuje.
typ
Jaka sieć stoi za wyjściem: rezydencyjna, datacenter, mobilna albo ISP. Strony traktują je inaczej.
pula
Lista węzłów, które dodajesz, każdy z krajem i czasem z miastem. Router dopasowuje targetowanie do węzła.
backconnect
Jedna bramka dostawcy. IP Router dokleja -cc-US-city-austin-sessid-job1 do nazwy użytkownika tego dostawcy.
direct
Ta maszyna. W sam raz do nauki. Strona i tak widzi IP Twojego hosta, więc strony geo się nie zmienią.
IP farm
Telefony Android, które stawiasz na stelażu w mieście. Agenci wychodzą tą ostatnią milą, rozliczenie za żywe połączenie — nie za GB.
Fetch API
POST /api/v1/fetch z JSON. Dla agentów i LLM, które nie mówią HTTP CONNECT.
Bramka :7777
Proxy HTTP. curl -x, Playwright, przeglądarki. Targetowanie siedzi w nazwie użytkownika, w stylu Oxylabs.
Dwoje drzwi

To samo targetowanie. Różni klienci.

Wybierz drzwi zgodne z tym, jak mówi Twój klient. Targetowanie i tak jest to samo.

Fetch API — drzwi agenta

Użyj tego, gdy klient wysyła JSON: narzędzie LLM, skrypt, węzeł n8n, piaskownica.

POST /api/v1/fetch z kluczem Bearer. Kraj, miasto, język i sesję włóż w treść. Odpowiedź ma stronę, geo wyjścia i route.reason, więc widać, czemu wybrano ten skok.

Pobiera URL i zwraca treść. Nie klika, nie wypełnia formularzy i nie trzyma ciasteczek prawdziwej przeglądarki. Do kasy w prawdziwej przeglądarce użyj bramki.

Bramka HTTP — drzwi przeglądarki

Użyj tego, gdy klient już mówi proxy HTTP: curl -x, Playwright, Chrome, zbieracz stron, który oczekuje CONNECT.

Skieruj proxy na host:7777. Nazwa użytkownika to iprouter-{keyId}-cc-GB-city-london-sessid-job1. Hasłem jest klucz API. Te same tokeny targetowania co w treści fetch, tylko w nazwie użytkownika.

CONNECT nie przepisuje nagłówków HTTPS. Jeśli na stronie TLS potrzebujesz Accept-Language, musi je wysłać przeglądarka (albo Fetch API). lang- w nazwie użytkownika to podpowiedź dla routingu i dla HTTP, nie magiczne wstrzyknięcie HTTPS.

Jeśli jesteśUżyj
Agent JSON / narzędzie LLMFetch API
Piaskownica / wypróbuj URLFetch API
curl, Playwright, prawdziwa przeglądarkaBramka :7777
Logowanie, potem zbieranie stron w tej samej sesjiDowolne drzwi, plus sessid
Wyjścia

Gdzie żądanie naprawdę wychodzi.

Wyjście to miejsce, z którego żądanie wychodzi w świat — tak to widzi strona. Zanim strony geo zaczną się zmieniać, potrzebujesz przynajmniej jednego, które nie jest „tą maszyną”.

Direct — ta maszyna

Jest w zestawie z węzłem. Żądania od razu się udają, więc piaskownica działa. route.reason powie „direct” albo „direct fallback (no geo node)”. Strona i tak widzi IP Twojego hosta.

Pula — IP, które dodajesz

Konsola → Pula proxy. Każdy węzeł ma kraj, opcjonalne miasto i typ. Prosisz o Londyn — wygrywa londyński węzeł puli. Prosisz o GB bez miasta — wygrywa dowolny węzeł GB.

Backconnect — jedna bramka dostawcy

Dodajesz jedną bramkę. IP Router wstrzykuje targetowanie do nazwy użytkownika (-cc-DE-city-berlin-sessid-s1). Użyj tego, gdy kupujesz transfer u dostawcy, zamiast wypisywać każde IP.

IP farm — telefony w mieście

Stawiasz telefony Android na stelażu, oznaczasz lokalizację krajem i miastem i ustawiasz, ile połączeń jest na żywo. Agenci wychodzą tą ostatnią milą. Rozliczenie za połączenie na miesiąc. 14-dniowa próba obejmuje pierwszy telefon.

Gdy podajesz kraj, router próbuje w tej kolejności: city pool match → country pool match → backconnect geo injection → direct fallback. Brak jakichkolwiek włączonych proxy to 422, nie ciche chybienie.

Pierwsza próba

Pięć minut. Płatnego wyjścia jeszcze nie potrzebujesz.

Zrób to raz, żeby reszta przewodnika nie była abstrakcją. Pięć minut. Płatnego wyjścia jeszcze nie potrzebujesz.

  1. 01

    Strona główna → Otwórz konsolę. Lokalnie nie ma rejestracji. Lądujesz na Przeglądzie.

  2. 02

    Piaskownica jest wstępnie wypełniona lokalnym echem. Wybierz kraj (US wystarczy). Zostaw sesję jako agent-demo. Wyślij. Echo zawsze zwraca 200 — to dowód drzwi, nie geo.

  3. 03
    Odczytaj trzy pola

    ok powinno być true. route.reason mówi, które wyjście wybrano. geo.exit to IP, które zobaczyłby świat — puste albo Twoja maszyna przy direct.

  4. 04

    Dodaj węzeł puli albo backconnect w Puli proxy albo IP farm w mieście, na którym Ci zależy. Wyślij jeszcze raz. reason nie powinno już mówić „direct fallback”.

  5. 05

    Klucze API są do Fetch API. Endpointy budują nazwę użytkownika bramki. Agenci mają schemat narzędzia LLM. To samo targetowanie, trzy skórki.

Zastosowania

Jak to działa przy każdym zadaniu.

Te same pokrętła za każdym razem: kraj, miasto, język, sesja stała, typ. Zadanie zmienia tylko to, które przekręcasz i przez które drzwi wchodzisz. Wybierz wiersz.

miasto / kraj

Zobacz wyszukiwanie tak, jak ktoś w tym mieście

Google (i Bing, i mapy) nie pokazują jednego internetu. Pokazują internet z miejsca, w którym stoisz. Pozycje, pakiet lokalny, reklamy, nawet pisownia, którą uznają za Twoją — wszystko zależy od wyjściowego IP i nagłówka języka. Jeśli agent pobiera z datacenter w USA, oceniasz amerykańską stronę wyników, nawet gdy pytanie brzmi „jak to wygląda w Manchesterze”.

Bez IP Router

Dostajesz SERP kraju hosta. Zapytanie o Londyn z VM w Wirginii to nadal strona z Wirginii, tylko z londyńskim ciągiem zapytania.

Z nim

cc-GB + city-london + lang-en_GB. Skok wychodzi brytyjskim wyjściem, Accept-Language to brytyjski angielski, a strona jest taka, jaką dostałby gość z Londynu.

Jak to działa

  1. 01Nazwij rynek: kraj GB, miasto London, język en-GB. Miasto ma znaczenie — Manchester i London mają różne pakiety lokalne.
  2. 02Użyj Fetch API, jeśli chcesz HTML/JSON do odczytu przez agenta. Użyj bramki, jeśli SERP prowadzi przeglądarka bezgłowa.
  3. 03Wyślij stabilny sessid, jeśli paginujesz albo klikasz dalej. Nowa sesja w trakcie przewijania wygląda jak nowy gość.
  4. 04Czytaj route.reason. Chcesz city pool match (albo backconnect geo injection). Direct fallback znaczy, że nadal jesteś na hoście.
  5. 05Porównaj dwa uruchomienia: to samo zapytanie, US kontra GB. Pakiet lokalny i reklamy powinny się ruszyć. Jeśli nie, jeszcze nie jesteś na wyjściu geo.
Drzwi

Dowolne drzwi. Fetch API, gdy agent wysyła JSON; bramka, gdy klient mówi CONNECT.

cc-GBcity-londonlang-en_GB
Fetch API
{
  "url": "https://www.google.com/search?q=best+coffee+near+me",
  "geo": { "country": "GB", "city": "London", "language": "en-GB" },
  "session": "serp-london"
}
Bramka :7777
curl -x http://iprouter-key_dev-cc-GB-city-london-lang-en_GB-sessid-serp-london:ipr_live_dev_key@127.0.0.1:7777 https://www.google.com/search?q=best+coffee+near+me
Wiesz, że zadziałało, gdy

route.reason to trafienie geo, geo.exit nie jest Twoim hostem, a pakiet lokalny pokazuje firmy z Londynu — nie te obok Twojego serwera.

Częste pomyłki

  • Sam kraj. GB bez miasta często ląduje na stronie krajowej, bez pakietu lokalnego, na którym Ci zależało.
  • Brak lang. Brytyjskie IP z en-US nadal ciąży ku amerykańskiej pisowni i amerykańskim serwisom w miksie.
route.reason

Zdanie, które mówi, czy geo naprawdę zaszło.

city pool match
Prosisz o miasto i w puli jest włączony węzeł z tego miasta. Najlepsze trafienie geo.
country pool match
Nie ma węzła miasta (albo nie prosisz o miasto), ale włączony jest węzeł puli w tym kraju.
backconnect geo injection
Brak węzła puli w tym kraju. Bramka backconnect jest włączona, więc targetowanie wpisano w jej nazwę użytkownika.
direct fallback (no geo node)
Nic w tym kraju. Żądanie i tak wyszło — przez tę maszynę. Strony geo się nie zmienią. Dodaj węzeł albo farmę.
sticky session
Używasz ponownie sessid, a stare wyjście nadal jest włączone. To samo IP co ostatnio. TTL odświeżony.
backconnect rotate / pool rotate / direct
Nie podajesz kraju. Router wybiera dowolne pasujące wyjście i, jeśli wysyłasz sesję, haszuje wybór, żeby został na miejscu.
Pomyłki

Te, które wyglądają jak błędy produktu.

Kraj bez języka

Japońskie IP z angielskim Accept-Language często i tak serwuje angielski. Ustaw lang (albo language w treści fetch) razem z cc.

Nowy sessid przy każdym żądaniu

Gdy ciąg sesji się zmienia, jesteś nową osobą. Logowania giną. Używaj tego samego sessid przez całe zadanie.

Zaufanie do direct fallback

200 z echa na tej maszynie nie dowodzi geo. Czytaj route.reason. Jeśli mówi direct fallback, strona i tak widziała Twój host.

Datacenter kontra rezydencyjne

Niektóre źródła odciskają ASN. Jeśli strona to ściana captcha albo pusta karta „wykryto datacenter”, ustaw type-residential albo użyj IP farm.

HTTPS + bramka + lang

Bramka nie wstrzyknie Accept-Language w tunel HTTPS CONNECT. Wyślij nagłówek z klienta albo użyj Fetch API.

Pusta pula

Gdy każdy węzeł jest wyłączony, dostajesz 422 „No enabled proxies in the pool.” Włącz węzeł direct albo dodaj włączony.