چگونه پروکسیهای Smartproxy را احراز هویت کنیم: لیست سفید IP در مقابل نام کاربری/گذرواژه و نشستهای چسبنده
بین احراز هویت با نام کاربری/گذرواژه و لیست سفید IP تصمیم بگیرید، نشستهای چرخشی یا چسبنده را انتخاب کنید، و پیش از خودکارسازی هر چیزی، نقطه پایانی مسکونی یا دیتاسنتر Smartproxy خود را با درخواستهای واقعی HTTP و SOCKS5 بررسی کنید.
مرور کلی
Smartproxy نقاط پایانی پروکسی مسکونی و دیتاسنتر را روی HTTP(S) و SOCKS5 (بیش از ۶۵ میلیون IP در بخش مسکونی) با یک طرح ماهانه ثابت ارائه میدهد. دو تصمیم اولیه تعیین میکند که آیا راهاندازی شما در همان تلاش اول کار میکند یا نه: اینکه از کدام حالت احراز هویت استفاده میکنید، و اینکه یک درخواست باید همان IP خروجی را حفظ کند یا به یک IP جدید بچرخد.
این راهنما هر دو تصمیم را پوشش میدهد و آنها را با درخواستهای واقعی خط فرمان بررسی میکند، تا بتوانید پیش از اتصال نقطه پایانی به یک اسکرپر، ردیاب رتبه، یا پروفایل مرورگر، از کارکرد آن مطمئن شوید.
احراز هویت: نام کاربری/گذرواژه یا لیست سفید IP
هر دو سبک احراز هویت در داشبورد پیکربندی میشوند:
- نام کاربری/گذرواژه — اعتبارنامهها با هر درخواست ارسال میشوند. از هر ماشین، کانتینر یا اجراکننده CI کار میکند، و با تغییر شبکه یا آدرس ISP همچنان کار میکند.
- لیست سفید IP — هیچ اعتبارنامهای همراه درخواست نمیرود، اما IP عمومی فعلی شما باید ثبت شده باشد. در همان لحظهای که ISP آدرس شما را عوض کند یا به شبکه دیگری بروید، از کار میافتد.
از نام کاربری/گذرواژه استفاده کنید، مگر اینکه IP ثابت اداری داشته باشید و ابزاری داشته باشید که اصلاً نمیتواند اعتبارنامههای پروکسی را ارسال کند.
انواع نشست: چرخشی یا چسبنده
- چرخشی — درخواستها میتوانند هر بار از یک IP متفاوت خارج شوند. این رفتار وقتی است که هیچ توکن نشستی ضمیمه نشده باشد، و همان چیزی است که برای جمعآوری در مقیاس بزرگ میخواهید، جایی که تعداد درخواست بهازای هر IP باید پایین بماند.
- چسبنده — همان IP خروجی برای طول عمر یک توکن نشست حفظ میشود، که جریانهای حالتدار مانند ورود، افزودن به سبد خرید و تسویه حساب را روی یک آدرس نگه میدارد.
Smartproxy جزئیات نشست و هدفگذاری را در نام کاربری پروکسی کدگذاری میکند. نحو دقیق پارامترها برای شما تولید میشود و ممکن است تغییر کند، بنابراین همیشه رشته آماده را از مولد نقطه پایانی داشبورد کپی کنید، نه اینکه آن را از حافظه تایپ کنید. مثالهای زیر فقط شکل کلی را نشان میدهند.
انتخاب بین نقاط پایانی مسکونی و دیتاسنتر
| مسکونی | دیتاسنتر | |
|---|---|---|
| استخر | بیش از ۶۵ میلیون IP | محدودههای کوچکتر و پایدار |
| سرعت | متوسط | سریع |
| بهترین برای | جمعآوری جغرافیمحور، تأیید تبلیغات، بررسی قیمتها | خزش پرحجم اهدافی که تحمل بالایی دارند، تست داخلی |
| ریسک مسدود شدن | کمتر، IPها بهطور گسترده توزیع شدهاند | بیشتر، محدودهها بهخوبی شناختهشدهاند |
به هر دو نوع نقطه پایانی به یک روش دسترسی پیدا میکنید؛ فقط میزبان، پورت و اعتبارنامهها متفاوتاند.
مراحل
۱. نقطه پایانی و اعتبارنامههای خود را در داشبورد پیدا کنید.
وارد شوید، صفحه راهاندازی پروکسی محصولی که خریداری کردهاید را باز کنید، و میزبان و پورت نقطه پایانی، نام کاربری و گذرواژه پروکسی، و هر رشته نشست یا هدفگذاری که مولد به نام کاربری تزریق میکند را کپی کنید.
export SP_USER='your-proxy-username'
export SP_PASS='your-proxy-password'
export SP_ENDPOINT='host:port' # مقدار دقیق را از داشبورد بچسبانید
اعتبارنامهها را در متغیرهای محیطی یا یک مدیر اسرار نگه دارید، نه اینکه آنها را در یک اسکریپت ثبت کنید.
۲. حالت احراز هویت خود را انتخاب کنید.
نام کاربری/گذرواژه توصیه پیشفرض است. اگر ترجیح میدهید از لیست سفید استفاده کنید، IP عمومی فعلی خود را یادداشت کنید و آن را در تنظیمات احراز هویت داشبورد اضافه کنید.
curl -sS https://ipinfo.io/ip
هر زمان ISP آن را تغییر داد، این آدرس را دوباره بررسی و دوباره اضافه کنید؛ یک ورودی کهنه در لیست سفید شایعترین دلیل خطای ناگهانی 407 است.
۳. یک درخواست HTTP چرخشی را بررسی کنید.
یک درخواست از طریق نقطه پایانی ارسال کنید و تأیید کنید که IP پروکسی را میبینید، نه IP خودتان.
curl -sS -x "http://${SP_USER}:${SP_PASS}@${SP_ENDPOINT}" https://ipinfo.io/json
آن را چندین بار در یک حلقه اجرا کنید تا تأیید کنید IP خروجی بین درخواستها واقعاً تغییر میکند.
for i in 1 2 3; do
curl -sS -x "http://${SP_USER}:${SP_PASS}@${SP_ENDPOINT}" https://ipinfo.io/ip
echo
done
اگر آدرس هرگز تغییر نمیکند، بررسی کنید که آیا توکن نشست هنوز در نام کاربری شما جاسازی شده است.
۴. یک IP خروجی را با یک نشست چسبنده تثبیت کنید.
نام کاربری نشست چسبنده را از مولد داشبورد کپی کنید (این نام کاربری شما بهعلاوه یک شناسه نشست است) و آن را زیر یک متغیر جداگانه export کنید تا بتوانید بدون ویرایش خود اعتبارنامهها، بین رشتههای چرخشی و چسبنده جابهجا شوید.
export SP_USER_STICKY='your-username-with-session-parameters' # از داشبورد کپی کنید
for i in 1 2 3; do
curl -sS -x "http://${SP_USER_STICKY}:${SP_PASS}@${SP_ENDPOINT}" https://ipinfo.io/ip
echo
done
هر سه پاسخ باید برای طول عمر آن توکن نشست، همان IP خروجی را نشان دهند.
۵. هدفگیری جغرافیایی را تست کنید.
هدفگیری کشور، شهر و استان نیز از طریق رشته نام کاربری تولیدشده منتقل میشود. پیش از اینکه یک گردش کار بهازای هر بازار روی آن بسازید، تأیید کنید که درخواست جایی که انتظار دارید فرود میآید.
export SP_USER_DE='your-username-with-country-parameter' # از داشبورد کپی کنید
curl -sS -x "http://${SP_USER_DE}:${SP_PASS}@${SP_ENDPOINT}" https://ipinfo.io/json
فیلد country در پاسخ باید با هدفی که پیکربندی کردهاید مطابقت داشته باشد.
۶. نقطه پایانی SOCKS5 را تست کنید.
از طرحواره socks5h:// استفاده کنید تا حل DNS در پروکسی انجام شود نه بهصورت محلی، که از نشت و مسدودسازیهای مبتنی بر DNS جلوگیری میکند.
curl -sS -x "socks5h://${SP_USER}:${SP_PASS}@${SP_ENDPOINT}" https://ipinfo.io/json
اگر کلاینت شما فقط از socks5:// پشتیبانی میکند، DNS بهصورت محلی حل میشود؛ در اسکریپتها socks5h را ترجیح دهید.
۷. وقتی توان عبوری مهم است، به یک نقطه پایانی دیتاسنتر سوئیچ کنید.
اعتبارنامهها و میزبانهای دیتاسنتر بهصورت جداگانه در داشبورد فهرست شدهاند. حلقه بررسی را دوباره روی میزبان و پورت دیتاسنتر اجرا کنید؛ فقط مقادیر نقطه پایانی تغییر میکنند، نه قالب درخواست.
export SP_DC_ENDPOINT='datacenter-host:port'
curl -sS -x "http://${SP_USER}:${SP_PASS}@${SP_DC_ENDPOINT}" https://ipinfo.io/ip
۸. از نقطه پایانی در Python استفاده کنید.
از همان متغیرهای محیطی دوباره استفاده کنید تا وقتی از پوسته به یک اسکریپت میروید چیزی تغییر نکند.
import os
import requests
auth = f"{os.environ['SP_USER']}:{os.environ['SP_PASS']}@"
endpoint = os.environ['SP_ENDPOINT']
proxies = {
"http": f"http://{auth}{endpoint}",
"https": f"http://{auth}{endpoint}",
}
response = requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30)
response.raise_for_status()
print(response.json())
برای کار چسبنده، یک دیکشنری proxies دوم از SP_USER_STICKY بسازید و آن را برای کل نشست استفاده کنید.
۹. منطق تلاش مجدد و چرخش را اضافه کنید.
پاسخهای 429 و 5xx را با یک عقبنشینی نمایی کوتاه مدیریت کنید، و بگذارید نشستهای چرخشی در هر تلاش بهطور طبیعی IP جدیدی ارائه دهند، بهجای اینکه همان نشست را مکرراً دوباره امتحان کنید.
import time
for attempt in range(4):
try:
response = requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30)
if response.status_code < 400:
break
except requests.RequestException:
pass
time.sleep(2 ** attempt)
عیبیابی
407 Proxy Authentication Required— نام کاربری یا گذرواژه اشتباه است، یک رشته نشست یا هدفگذاری در فیلد اشتباه جایگذاری شده، یا IP لیست سفید شما دیگر با آدرس فعلیتان مطابقت ندارد. رشته را دوباره از مولد داشبورد کپی کنید.- اعتبارنامهها پس از کارکرد درست رد میشوند — گذرواژههای حاوی
@،:،/یا#باید در داخل URL پروکسی URL-encode شوند (@به%40و:به%3Aتبدیل میشود). اگر ابزار شما نمیتواند آنها را کدگذاری کند، گذرواژهای بدون کاراکترهای خاص ترجیح دهید. curl: (7) Failed to connect— میزبان یا پورت اشتباه است، یا یک نقطه پایانی مسکونی را در جای دیتاسنتر کپی کردهاید (یا برعکس). هر محصول میزبان و پورت خودش را دارد.- هر درخواست همان IP را برمیگرداند — یک توکن نشست چسبنده هنوز در نام کاربری وجود دارد، یا از مجموعه اعتبارنامه چسبنده بهجای چرخشی استفاده میکنید.
- نشست چسبنده در میانه گردش کار IP را تغییر میدهد — طول عمر نشستها منقضی میشود. بهجای فرض اینکه نشست قدیمی تا بینهایت باقی میماند، آگاهانه یک توکن نشست جدید شروع کنید و دوباره احراز هویت کنید.
- درخواستها فقط روی SOCKS5 timeout میشوند — ممکن است کلاینت از DNS راه دور پشتیبانی نکند. به
socks5h://سوئیچ کنید یا برای آن ابزار به نقطه پایانی HTTP برگردید. - احراز هویت لیست سفید بهصورت متناوب شکست میخورد — شبکههای موبایل و اتصالات خانگی IP عمومی را عوض میکنند. برای کارهای بدون نظارت از نام کاربری/گذرواژه استفاده کنید.
خلاصه
شروع کار با Smartproxy به دو انتخاب و یک عادت خلاصه میشود. نام کاربری/گذرواژه را انتخاب کنید مگر اینکه IP واقعاً ثابتی داشته باشید، و برای بارهای کاری جمعآوری، نشستهای چرخشی یا برای جریانهای حالتدار، نشستهای چسبنده را انتخاب کنید. آن عادت کپی کردن رشته نقطه پایانی و نام کاربری مستقیماً از مولد داشبورد است، زیرا پارامترهای نشست و هدفگیری جغرافیایی در همان رشته قرار دارند. مسیر چرخشی، مسیر چسبنده، مسیر SOCKS5 و میزبان دیتاسنتر را با حلقههای کوتاه curl بالا بررسی کنید، پیش از اینکه یک اسکرپر یا ردیاب رتبه را به آنها وصل کنید.