Die Website sieht dein Laptop nicht
Sie sieht die Exit-IP. Wechsel den Exit, wechselt die Seite — Preise, SERP, Store-Locator, Paywall.
Jedes Gerät im Internet hat eine Adresse. Suche, Shops, Ads und Nachrichten nutzen sie, um zu entscheiden, was du siehst — Währung, Sprache, Rankings, manchmal ob die Seite überhaupt lädt. Ein KI-Agent im Rechenzentrum hat eine Adresse: dieses Rechenzentrum. Ohne lokalen Exit sieht jeder Fetch aus demselben Gebäude aus.
Du nennst ein Land oder eine Stadt. IP Router wählt dort einen Exit, schickt die Anfrage über diese IP und gibt die Seite zurück. Dasselbe Gehirn für einen JSON-Agenten und einen echten Browser.
Sie sieht die Exit-IP. Wechsel den Exit, wechselt die Seite — Preise, SERP, Store-Locator, Paywall.
cc-JP setzt dich auf eine japanische IP. lang-ja sagt der Site, dass du Japanisch liest. Meist willst du beides.
Logins, Warenkörbe und Cookies sterben, wenn die IP mittendrin wechselt. Ein sessid pinnt dich an einen Exit bis zum Ablauf.
Agenten POSTen JSON an /api/v1/fetch. Browser und curl sprechen CONNECT auf :7777. Beide rufen selectRoute.
Wähl die Tür, die dazu passt, wie dein Client spricht. Das Targeting ist in beiden Fällen dasselbe.
Nimm das, wenn dein Client JSON postet: ein LLM-Tool, ein Skript, ein n8n-Knoten, der Playground.
POST /api/v1/fetch mit einem Bearer-Schlüssel. Setz Land, Stadt, Sprache und Session in den Body. Die Antwort enthält die Seite, das Exit-Geo und route.reason, damit du siehst, warum dieser Hop gewählt wurde.
Sie holt eine URL und gibt den Body zurück. Sie klickt nicht, füllt keine Formulare aus und hält kein echtes Browser-Cookie-Jar. Für einen Checkout im echten Browser nimm das Gateway.
Nimm das, wenn der Client schon HTTP-Proxy spricht: curl -x, Playwright, Chrome, ein Scraper, der CONNECT erwartet.
Stell den Proxy auf host:7777. Der Username ist iprouter-{keyId}-cc-GB-city-london-sessid-job1. Das Passwort ist der API-Schlüssel. Dieselben Targeting-Tokens wie im Fetch-Body, nur im Username.
CONNECT kann HTTPS-Header nicht umschreiben. Brauchst du Accept-Language auf einer TLS-Site, muss der Browser (oder die Fetch API) ihn schicken. lang- im Username ist ein Hinweis fürs Routing und für HTTP, keine magische HTTPS-Injektion.
| Wenn du | Nutze |
|---|---|
| JSON-Agent / LLM-Tool | Fetch API |
| Playground / eine URL testen | Fetch API |
| curl, Playwright, ein echter Browser | Gateway :7777 |
| Einloggen, dann dieselbe Session crawlen | Jede Tür, plus ein sessid |
Ein Exit ist der Punkt, an dem die Anfrage das Internet verlässt — aus Sicht der Website. Du brauchst mindestens einen, der nicht „dieser Rechner“ ist, bevor sich Geo-Seiten ändern.
Kommt mit dem Knoten. Anfragen klappen sofort, damit der Playground läuft. route.reason sagt „direct“ oder „direct fallback (no geo node)“. Die Website sieht weiter deine Host-IP.
Konsole → Proxy-Pool. Jeder Knoten hat ein Land, optional eine Stadt und einen Typ. Frag London an, ein Londoner Pool-Knoten gewinnt. Frag GB ohne Stadt an, jeder GB-Knoten gewinnt.
Du fügst ein Gateway hinzu. IP Router injiziert das Targeting in den Username (-cc-DE-city-berlin-sessid-s1). Nimm das, wenn du Bandbreite bei einem Anbieter kaufst, statt jede IP einzeln aufzulisten.
Stell Android-Telefone ins Rack, tagge den Standort mit Land und Stadt und setz, wie viele Verbindungen live sind. Agenten gehen über diese Last Mile raus. Abgerechnet pro Verbindung im Monat. Ein 14-Tage-Test deckt das erste Telefon.
Nennst du ein Land, probiert der Router es in dieser Reihenfolge: city pool match → country pool match → backconnect geo injection → direct fallback. Gar keine aktiven Proxies, das ist ein 422, kein stiller Fehlschlag.
Mach das einmal, damit der Rest der Anleitung nicht abstrakt bleibt. Fünf Minuten. Du brauchst noch keinen bezahlten Exit.
Landing → Konsole öffnen. Lokal gibt es keine Registrierung. Du landest auf der Übersicht.
Der Playground ist mit dem lokalen Echo vorausgefüllt. Wähl ein Land (US passt). Lass die Session auf agent-demo. Senden. Vom Echo kommt immer eine 200 — das beweist die Tür, nicht das Geo.
ok soll true sein. route.reason sagt dir, welcher Exit gewählt wurde. geo.exit ist die IP, die die Außenwelt sehen würde — leer oder dein Rechner bei Direct.
Füg einen Pool- oder Backconnect-Knoten unter Proxy-Pool hinzu, oder eine IP farm in einer Stadt, die dich interessiert. Nochmal senden. reason soll nicht mehr „direct fallback“ sagen.
API-Schlüssel für die Fetch API. Endpoints baut den Gateway-Username. Unter Agenten liegt das LLM-Tool-Schema. Dasselbe Targeting, drei Oberflächen.
Dieselben Regler jedes Mal: Land, Stadt, Sprache, Sticky, Typ. Der Job ändert nur, welche du drehst und durch welche Tür du gehst. Wähl eine Zeile.
Google (und Bing, und Maps) zeigen nicht ein Internet. Sie zeigen das Internet von dort, wo du stehst. Rankings, Local Pack, Ads, sogar die Schreibweise — alles hängt an Exit-IP und Sprach-Header. Fetcht dein Agent aus einem US-Rechenzentrum, bewertest du eine US-Ergebnisseite, auch wenn die Frage lautet „wie sieht das in Manchester aus“.
Du bekommst die SERP des Host-Landes. Eine London-Suche von einer Virginia-VM ist weiter eine Virginia-Seite mit einem Query-String, der nach London aussieht.
cc-GB + city-london + lang-en_GB. Der Hop geht über einen UK-Exit raus, Accept-Language ist britisches Englisch, und die Seite ist die, die ein Besucher in London bekommt.
Jede Tür. Fetch, wenn der Agent JSON postet; Gateway, wenn der Client CONNECT spricht.
{
"url": "https://www.google.com/search?q=best+coffee+near+me",
"geo": { "country": "GB", "city": "London", "language": "en-GB" },
"session": "serp-london"
}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
route.reason ist ein Geo-Treffer, geo.exit ist nicht dein Host, und das Local Pack nennt Londoner Geschäfte — nicht die neben deinem Server.
Eine japanische IP mit englischem Accept-Language liefert oft trotzdem Englisch. Setz lang (oder language im Fetch-Body) genauso wie cc.
Ändert sich der Session-String, bist du eine neue Person. Logins fallen weg. Nutz dasselbe sessid für den ganzen Job.
Eine 200 vom Echo auf diesem Rechner beweist kein Geo. Lies route.reason. Steht dort direct fallback, hat die Website weiter deinen Host gesehen.
Manche Origins fingerprinten die ASN. Ist die Seite eine Captcha-Wand oder eine leere „datacenter detected“, setz type-residential oder nutz eine IP farm.
Das Gateway kann Accept-Language nicht in einen HTTPS-CONNECT-Tunnel injizieren. Schick den Header vom Client, oder nutz die Fetch API.
Ist jeder Knoten aus, bekommst du 422 „No enabled proxies in the pool.“ Aktivier den Direct-Knoten oder füg einen hinzu, der an ist.