웹사이트는 노트북을 보지 않습니다
출구 IP를 봅니다. 출구를 바꾸면 페이지가 바뀝니다. 가격, 검색 결과, 매장 찾기, 유료 장벽, 전부.
인터넷의 모든 기기에는 주소가 있습니다. 검색, 상점, 광고, 뉴스 사이트는 그 주소로 보이는 것을 정합니다. 통화, 언어, 순위, 심지어 페이지가 열리는지까지. 데이터센터 안의 AI 에이전트에게 주소는 하나, 그 데이터센터뿐입니다. 지역에 맞는 출구가 없으면 모든 요청이 한 건물에서 온 것처럼 보입니다.
국가나 도시를 요청합니다. IP Router가 그곳의 출구를 고르고, 그 IP로 요청을 내보낸 뒤, 페이지를 돌려줍니다. JSON 에이전트와 실제 브라우저가 같은 두뇌를 씁니다.
출구 IP를 봅니다. 출구를 바꾸면 페이지가 바뀝니다. 가격, 검색 결과, 매장 찾기, 유료 장벽, 전부.
cc-JP는 일본 IP에 올립니다. lang-ja는 일본어를 읽는다고 사이트에 알립니다. 보통 둘 다 필요합니다.
로그인, 장바구니, 쿠키는 도중에 IP가 바뀌면 죽습니다. sessid는 만료될 때까지 하나의 출구에 고정합니다.
에이전트는 /api/v1/fetch로 JSON을 POST합니다. 브라우저와 curl은 :7777에서 CONNECT로 말합니다. 둘 다 selectRoute를 부릅니다.
클라이언트가 말하는 방식에 맞는 문을 고르세요. 어느 쪽이든 타기팅은 같습니다.
클라이언트가 JSON을 POST할 때 쓰세요. LLM 도구, 스크립트, n8n 노드, 플레이그라운드.
Bearer 키로 POST /api/v1/fetch를 보냅니다. 본문에 국가, 도시, 언어, 세션을 넣으세요. 응답에는 페이지, 출구 지역, 그리고 그 홉이 선택된 이유를 보여주는 route.reason이 들어 있습니다.
URL을 가져와 본문을 돌려줍니다. 클릭하거나, 양식을 채우거나, 실제 브라우저의 쿠키 저장소를 유지하지는 않습니다. 실제 브라우저에서 결제하려면 게이트웨이를 쓰세요.
클라이언트가 이미 HTTP 프록시를 말할 때 쓰세요. curl -x, Playwright, Chrome, CONNECT를 기대하는 스크레이퍼.
프록시를 host:7777로 향하게 하세요. username은 iprouter-{keyId}-cc-GB-city-london-sessid-job1입니다. 비밀번호는 API 키입니다. fetch 본문과 같은 타기팅 토큰이 username 안에 있습니다.
CONNECT는 HTTPS 헤더를 다시 쓸 수 없습니다. TLS 사이트에 Accept-Language가 필요하면 브라우저(또는 Fetch API)가 보내야 합니다. username의 lang-은 라우팅과 HTTP를 위한 힌트이며, HTTPS에 마법처럼 주입되지는 않습니다.
| 이런 경우 | 사용 |
|---|---|
| JSON 에이전트 / LLM 도구 | Fetch API |
| 플레이그라운드 / URL 시험 | Fetch API |
| curl, Playwright, 실제 브라우저 | 게이트웨이 :7777 |
| 로그인한 뒤 같은 세션을 크롤 | 어느 문이든, sessid와 함께 |
출구는 웹사이트가 보기에 요청이 인터넷으로 나가는 지점입니다. 지역 페이지가 바뀌려면 「이 머신」이 아닌 출구가 적어도 하나는 있어야 합니다.
노드에 기본으로 들어 있습니다. 요청이 바로 성공해서 플레이그라운드가 동작합니다. route.reason은 「direct」 또는 「direct fallback (no geo node)」라고 합니다. 웹사이트는 여전히 호스트 IP를 봅니다.
콘솔 → 프록시 풀. 각 노드에는 국가, 선택적인 도시, 유형이 있습니다. 런던을 요청하면 런던 풀 노드가 이깁니다. 도시 없이 GB를 요청하면 아무 GB 노드나 이깁니다.
게이트웨이를 하나 추가합니다. IP Router가 username에 타기팅을 주입합니다 (-cc-DE-city-berlin-sessid-s1). IP를 하나씩 나열하는 대신 제공자에게 대역폭을 살 때 쓰세요.
Android 휴대폰을 세워 두고, 사이트에 국가와 도시를 붙이고, 라이브 연결 수를 정합니다. 에이전트는 그 라스트마일을 통해 나갑니다. 연결당 월 요금입니다. 첫 휴대폰은 14일 체험입니다.
국가를 지정하면 라우터는 이 순서로 시도합니다. city pool match → country pool match → backconnect geo injection → direct fallback. 켜진 프록시가 하나도 없으면 조용히 놓치는 것이 아니라 422입니다.
나머지가 추상적으로 남지 않도록, 이것을 한 번 해 보세요. 5분입니다. 유료 출구는 아직 필요 없습니다.
랜딩 → 콘솔 열기. 로컬에는 가입이 없습니다. 개요로 들어옵니다.
플레이그라운드에는 로컬 에코가 미리 채워져 있습니다. 국가를 고르세요. US면 충분합니다. 세션은 agent-demo로 두고 보내세요. 에코는 항상 200을 돌려줍니다. 이것은 문을 확인하는 것이며, 지역을 확인하는 것은 아닙니다.
ok는 true여야 합니다. route.reason이 어느 출구를 골랐는지 알려 줍니다. geo.exit는 바깥에서 보게 될 IP입니다. 다이렉트이면 비어 있거나 이 머신입니다.
프록시 풀에 풀 노드나 백커넥트 노드를 추가하거나, 필요한 도시의 IP farm을 추가하세요. 다시 보내세요. reason은 더 이상 「direct fallback」이라고 하면 안 됩니다.
Fetch API에는 API 키가 있습니다. 엔드포인트는 게이트웨이 username을 만듭니다. 에이전트에는 LLM 도구 스키마가 있습니다. 타기팅은 같고, 겉모습만 세 가지입니다.
손잡이는 매번 같습니다. 국가, 도시, 언어, 고정, 유형. 바뀌는 것은 어느 것을 돌리고 어느 문으로 들어가느냐뿐입니다. 한 줄을 고르세요.
Google(그리고 Bing, 지도)은 인터넷을 하나로 보여 주지 않습니다. 서 있는 곳에서 본 인터넷을 보여 줍니다. 순위, 로컬 팩, 광고, 심지어 어떤 철자를 의도했다고 보는가까지, 전부 출구 IP와 언어 헤더에 달렸습니다. 에이전트가 미국 데이터센터에서 가져오면, 질문이 「맨체스터에서는 어떻게 보이나」여도 미국 결과 페이지를 채점하는 것입니다.
호스트 국가의 검색 결과가 나옵니다. 버지니아 VM에서 보낸 런던 쿼리도, 쿼리 문자열만 런던 모양인 버지니아 페이지입니다.
cc-GB + city-london + lang-en_GB. 홉은 영국 출구로 나가고, Accept-Language는 영국 영어이며, 페이지는 런던 방문자가 받을 그 페이지입니다.
어느 문이든. 에이전트가 JSON을 POST하면 Fetch API, 클라이언트가 CONNECT를 말하면 게이트웨이.
{
"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이 지역 적중이고, geo.exit가 호스트가 아니며, 로컬 팩이 서버 옆이 아니라 런던 업체를 가리킵니다.
일본 IP에 영어 Accept-Language가 있으면, 여전히 영어를 주는 일이 많습니다. cc와 함께 lang(또는 fetch 본문의 language)도 설정하세요.
세션 문자열이 바뀌면 새로운 사람입니다. 로그인이 떨어집니다. 작업 전체에 같은 sessid를 다시 쓰세요.
이 머신의 에코가 200을 준 것은 지역의 증거가 아닙니다. route.reason을 읽으세요. direct fallback이라고 하면, 웹사이트는 여전히 호스트를 본 것입니다.
일부 오리진은 ASN을 핑거프린트합니다. 페이지가 캡차 벽이거나 「데이터센터가 감지됨」 빈 화면이면, type-residential을 설정하거나 IP farm을 쓰세요.
게이트웨이는 HTTPS CONNECT 터널에 Accept-Language를 주입할 수 없습니다. 클라이언트에서 헤더를 보내거나, Fetch API를 쓰세요.
모든 노드가 꺼져 있으면 422 「No enabled proxies in the pool.」이 옵니다. 다이렉트 노드를 켜거나, 켜진 노드를 하나 추가하세요.