hadi mirzaie
hadi mirzaie
خواندن ۳ دقیقه·۲ سال پیش

تغییر IP آدرس با استفاده از سرویس tor و پایتون

یکی از عزیزان از بنده درخواست کرد که جهت جلوگیری از خطای 429 چه کاری می شود انجام داد. این خطا توسط سرور به دلیل درخواست های مکرر که از یک آی پی مشخص فرستاده می شود رخ می دهد. سرور درخواست های مکرر را به عنوان اسپم شناسایی می کند و نتیجتا شما را به مدت زمان خاص، از ارسال درخواست منع می کند. تصمیم گرفتم یکی از راه های دور زدن چنین خطایی را براتون بگم (در نظر داشته باشید در حالت عادی اگر نیاز مبرم ندارید، بهتر است به ارور سرور احترام بگذارید زیرا سرور تحت فشار قرار میگیرد و درستش این است که اسپم نکنید)

بریم سراغ آموزش، اولین کاری که لازم است انجام بدهید راه اندازی تور بر روی سیستم خودتان است. در واقع تور یک سیستم غیر متمرکز از نودهای داوطلبانه در حال اجراست. با استفاده از تور، شما می توانید آی پی خود را برای هر بار درخواست تغییر بدهید. در نظر داشته باشید همه سرورها قرار نیست با این روش، خطایشان دور زده شود زیرا احتمال بسیار بالایی متوجه خواهد شد که شما در حال تغییر آی پی های متعدد هستید.

منطقی ترین روش جهت راه اندازی تور، استفاده از داکر tor است. در ترمینال یا CMD دستور زیر را وارد کنید:

docker run --name='tor-privoxy' -d -p 9050:9050 -p 9051:9051 -p 8118:8118 dockage/tor-privoxy:latest

اندکی فرصت بدهید تا ایمیج تور دانلود و کانتینرش راه اندازی شود. پورت 9050 پورتی است که تور از آن استفاده میکند و 9051 همان پورتی است که شما جهت ارتباط برقرار کردن و دریافت آی پی جدید از تور استفاده خواهید کرد.
حالا از طریق دستور زیر وارد محیط شل داکر تور بشوید:

در ویندوز

docker exec -it tor-privoxy sh

در لینوکس

docker exec -it tor-privoxy bash

حالا در محیط شل، با اجرای دستور tor مطمئن شوید تور در حال اجراست:

/ # tor Sep 08 21:47:12.582 [notice] Tor 0.3.4.11 (git-4fd31340f3355342) running on Linux with Libevent 2.1.8-stable, OpenSSL 1.1.1b, Zlib 1.2.11, Liblzma N/A, and Libzstd N/A.

سپس برای سرویس تور خود یک پسورد تعیین کنید:

tor --hash-password YOUR-PASSWORD-HERE

در پاسخ به این دستور، تور پسورد شما را هش میکند. شما باید این پسورد هش شده را در داخل فایل تنظیمات تور قرار بدهید. پس این پسورد را جایی یادداشت کنید. در همان محیط شل وارد مسیر : etc/tor/ بشوید و فایل تنظیمات تور را باز کنید:

$ cd /etc/tor $ sudo vi torrc

آپشن HashedControlPassword را پیدا کنید و آن را از حالت کامنت در بیارید و پسورد خود را مقابل آن پیست کنید.

حالا با زدن گزینه esc و نوشتن دستور wq: آن را ذخیره و از محیط ویرایش vi خارج شوید.

حالا نیاز دارید 3 پکیج پایتونی را نصب کنید. در ترمینال یا CMD:

pip install stem
pip install requests
pip install pysocks

پکیج اولی جهت ارتباط برقرار کردن با سرویس تور است. حالا کدهای زیر را در فایل پایتونی خود وارد کنید:

import requests import time from stem import Signal from stem.control import Controller def get_current_ip(): session = requests.session() session.proxies = {} session.proxies['http']='socks5h://localhost:9050' session.proxies['https']='socks5h://localhost:9050' try: r = session.get('http://httpbin.org/ip') except Exception as e: print str(e) else: return r.text def renew_tor_ip(): with Controller.from_port(port = 9051) as controller: controller.authenticate(password=&quotپسورد&quot) controller.signal(Signal.NEWNYM) for i in range(5): get_current_ip() renew_tor_ip() time.sleep(5)

همینطور که میبینید ما 2 تابع تعریف کردیم که تابع نخست در واقع آپشن پروکسی را به ریکوئست ما اضافه میکند و تابع دوم، پس از هر درخواست، آی پی ما را تغییر می دهد.

به همین سادگی شما می تونید با آیپی های متغییر، به سرور درخواست بدید. اگر راه های ساده تری هم به ذهنتون میرسه، واسم کامنت کنید :)


torتورهک و امنیتپایتون
مسترربیت هستم برنامه نویس، طراح سایت، علاقه مند به بلاک چین ... میخونم و گاهی مینویسم و شاید سخت ترین کار دنیا رو هم گاهی انجام بدم ... می اندیشم !!!!
شاید از این پست‌ها خوشتان بیاید