الموقع لا يرى حاسوبك المحمول أبدًا
يرى IP المخرج. غيّر المخرج تتغيّر الصفحة — الأسعار ونتائج البحث ومحدد المتاجر وجدار الدفع، كل ذلك.
لكل جهاز على الإنترنت عنوان. البحث والمتاجر والإعلانات ومواقع الأخبار تستخدم هذا العنوان لتقرر ما تراه — العملة واللغة والترتيب، وحتى ما إذا كانت الصفحة تُحمَّل أصلًا. وكيل في مركز بيانات له عنوان واحد: ذلك المركز. من دون مخرج محلي، يبدو كل جلب صادرًا من مبنى واحد.
تطلب دولة أو مدينة. يختار IP Router مخرجًا هناك، ويرسل الطلب عبر ذلك الـ IP، ويعيد إليك الصفحة. الدماغ نفسه لوكيل JSON ولمتصفح حقيقي.
يرى IP المخرج. غيّر المخرج تتغيّر الصفحة — الأسعار ونتائج البحث ومحدد المتاجر وجدار الدفع، كل ذلك.
يضعك cc-JP على IP ياباني. يخبر lang-ja الموقع أنك تقرأ اليابانية. غالبًا تريد الاثنين معًا.
تسجيلات الدخول والسلال والكوكيز تموت إذا انقلب الـ IP في منتصف المسار. يثبّتك sessid على مخرج واحد حتى انتهاء صلاحيته.
يرسل الوكلاء JSON عبر POST إلى /api/v1/fetch. تتحدث المتصفحات وcurl عبر CONNECT على :7777. كلاهما يستدعي selectRoute.
اختر الباب الذي يوافق طريقة تحدّث عميلك. الاستهداف واحد في الحالين.
استخدم هذا حين يرسل عميلك JSON: أداة نموذج لغوي، أو سكربت، أو عقدة n8n، أو ساحة التجربة.
POST /api/v1/fetch بمفتاح Bearer. ضع الدولة والمدينة واللغة والجلسة في الجسم. تتضمّن الاستجابة الصفحة، وجغرافيا المخرج، وroute.reason حتى ترى لماذا اختيرت تلك القفزة.
يجلب URL ويعيد الجسم. لا ينقر، ولا يملأ النماذج، ولا يحتفظ بمخزن كوكيز لمتصفح حقيقي. للدفع في متصفح حقيقي، استخدم البوابة.
استخدم هذا حين يتحدث العميل أصلًا ببروكسي HTTP: curl -x، أو Playwright، أو Chrome، أو أداة جمع تتوقع CONNECT.
وجّه البروكسي إلى host:7777. اسم المستخدم هو iprouter-{keyId}-cc-GB-city-london-sessid-job1. كلمة المرور هي مفتاح API. رموز الاستهداف نفسها الموجودة في جسم الجلب، لكنها داخل اسم المستخدم.
لا يستطيع CONNECT إعادة كتابة ترويسات HTTPS. إذا احتجت Accept-Language على موقع TLS، يجب أن يرسله المتصفح (أو fetch API). البادئة lang- في اسم المستخدم تلميح للتوجيه ولـ HTTP، وليست حقنًا سحريًا في HTTPS.
| إذا كنت | استخدم |
|---|---|
| وكيل JSON / أداة نموذج لغوي | Fetch API |
| ساحة التجربة / جرّب URL | Fetch API |
| curl، أو Playwright، أو متصفح حقيقي | البوابة :7777 |
| سجّل الدخول ثم اجمع من الجلسة نفسها | أي البابين، مع sessid |
المخرج هو المكان الذي يغادر منه الطلب الإنترنت من منظور الموقع. تحتاج إلى مخرج واحد على الأقل ليس «هذا الجهاز» قبل أن تتغيّر الصفحات الجغرافية.
يأتي مع العقدة. تنجح الطلبات فورًا حتى تعمل ساحة التجربة. سيقول route.reason «direct» أو «direct fallback (no geo node)». ما زال الموقع يرى عنوان IP لمضيفك.
لوحة التحكم ← مجمع البروكسي. لكل عقدة دولة، ومدينة اختيارية، ونوع. اطلب لندن، فتفوز عقدة مجمع في لندن. اطلب GB بلا مدينة، فتفوز أي عقدة GB.
تضيف بوابة واحدة. يحقن IP Router الاستهداف في اسم المستخدم (-cc-DE-city-berlin-sessid-s1). استخدم هذا حين تشتري عرض النطاق من مزوّد بدلًا من سرد كل عنوان IP.
صفّ هواتف Android، ووسم الموقع بدولة ومدينة، وحدّد عدد الاتصالات الحية. يغادر الوكلاء عبر ذلك الميل الأخير. تُحاسب عن كل اتصال في الشهر. تجربة من 14 يومًا تغطي الهاتف الأول.
حين تسمّي دولة، يجرّب الموجّه بهذا الترتيب: city pool match → country pool match → backconnect geo injection → direct fallback. وغياب البروكسيات المفعّلة كليًا يعطي 422، لا إخفاقًا صامتًا.
افعل هذا مرة واحدة حتى لا يبقى بقية الدليل نظريًا. خمس دقائق. لست بحاجة إلى مخرج مدفوع بعد.
الصفحة الرئيسية ← افتح لوحة التحكم. محليًا لا يوجد تسجيل. تصل إلى النظرة العامة.
ساحة التجربة معبأة مسبقًا بالصدى المحلي. اختر دولة (US مناسبة). اترك الجلسة agent-demo. أرسل. تحصل دائمًا على 200 من الصدى — هذا يثبت الباب، لا الجغرافيا.
يجب أن يكون ok بقيمة true. يخبرك route.reason أي مخرج اختير. geo.exit هو عنوان IP الذي سيراه العالم الخارجي — فارغ، أو جهازك في الوضع المباشر.
أضف عقدة مجمع أو backconnect ضمن مجمع البروكسي، أو IP farm في مدينة تهمّك. أرسل مرة أخرى. يجب ألا يقول reason بعد ذلك «direct fallback».
مفاتيح API لـ Fetch API. تبني نقاط النهاية اسم مستخدم البوابة. لدى الوكلاء مخطط أداة النموذج اللغوي. الاستهداف نفسه، في ثلاث واجهات.
المعاملات نفسها في كل مرة: الدولة، والمدينة، واللغة، والجلسة الثابتة، والنوع. لا يتغيّر في المهمة إلا أيها تدير وأي باب تسلك. اختر صفًا.
لا يعرض Google (ولا Bing ولا الخرائط) إنترنتًا واحدًا. يعرضون الإنترنت من حيث تقف. الترتيب والحزمة المحلية والإعلانات، وحتى الإملاء الذي يظنون أنك قصدته — كل ذلك يعتمد على IP المخرج وترويسة اللغة. إذا جلب وكيلك من مركز بيانات أمريكي، فأنت تقيّم صفحة نتائج أمريكية، حتى حين يكون السؤال «كيف يبدو هذا في مانشستر».
تحصل على صفحة نتائج بحث دولة المضيف. استعلام عن لندن من جهاز افتراضي في فرجينيا يبقى صفحة فرجينيا بسلسلة استعلام تشبه لندن.
cc-GB + city-london + lang-en_GB. تغادر القفزة عبر مخرج في المملكة المتحدة، ويكون Accept-Language إنجليزية بريطانية، والصفحة هي التي يراها زائر من لندن.
أي البابين. Fetch API حين يرسل الوكيل JSON؛ والبوابة حين يتحدث العميل 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 إنجليزي غالبًا ما يقدّم الإنجليزية رغم ذلك. عيّن lang (أو language في جسم الجلب) إلى جانب cc.
إذا تغيّرت سلسلة الجلسة فأنت شخص جديد. تسقط جلسات الدخول. أعد استخدام sessid نفسه طوال المهمة.
الحصول على 200 من الصدى على هذا الجهاز ليس دليلًا على الجغرافيا. اقرأ route.reason. إذا قال direct fallback، فالموقع قد رأى مضيفك رغم ذلك.
بعض المصادر تأخذ بصمة ASN. إذا كانت الصفحة جدار captcha أو صفحة فارغة تقول «اكتُشف مركز بيانات»، عيّن type-residential أو استخدم IP farm.
لا تستطيع البوابة حقن Accept-Language في نفق CONNECT عبر HTTPS. أرسل الترويسة من العميل، أو استخدم Fetch API.
إذا عُطّلت كل العقد، تحصل على 422 «No enabled proxies in the pool.». فعّل العقدة المباشرة أو أضف عقدة تعمل.