پایتون
Last updated
Last updated
خب توی بخش قبل دیدم که با netcat فرستادیم. حالا بیاید با سوکت پروگرمینگ این کار رو توی پایتون انجام بدیم:
اول ما به کتابخونه socket نیاز داریم تا کار خودمون رو انجام بدیم. پس اون رو وارد اسکریپت خودمون میکنیم:
خب حالا یه تابع تعریف میکنیم به اسم newnym که کد ما داخل اون باشه
حالا باید بیایم سوکت خودمون رو ایجاد کنیم با تابع socket.socket:
چون ایپی ما ورژن چهار هست باید از AF_INET استفاده کنیم و چون پروتکل ما نیز TCP هست باید از SOCK_STREAM استفاده کنیم.
حالا بیاید به ایپی و پورت وصل شیم:
حالا بعد از متصل شدن باید احراز هویت رو انجام بدیم، یادتونه که اول باید احراز هویت انجام بشه؟
حالا سیگنال مورد نظر رو میفرستیم:
این هم از این :) تموم شد رفت. حالا تابع newnym رو صدا بزنید.
کد نهایی:
حالا تیم تور یه کتابخونه به اسم stem برای پایتون نوشتن که خودش این کار هارو انجام میده و نیازی به سوکت نویسی نیست
اینجا ما از python 3.9.5 استفاده میکنیم و stem نسخه 1.8.0 ممکنه وقتی شما اینو میخونید این کد ها تغییر کرده باشن و کار نکنن.
حالا بیاید اینو نصب کنیم. برای این ما از پکیج منیجر پایتون که همون pip هست استفاده میکنیم:
وقتی که نصب شد باید بریم سر کد نویسی:
چون از کنترلر میخوایم استفاده کنیم بایدstem.control رو وارد اسکریپتمون کنیم:
و چون ما میخوایم از سیگنال ها استفاده کنیم باید Signal استفاده کنیم برای همین اون رو هم وارد میکنیم:
خب حالا باید به پورت وصل شیم برای این کار:
و مثل قبل باید احراز هویت انجام بشه:
اگه پسوورد نزاشتید که هیچ پارامتری بهش ندید یعنی:
حالا وقت ارسال سیگنال هست:
همین. کد نهایی:
یادتونه گفتم این NEWNYM لیمیت داره و نمیتونید پشت سر هم زیاد بفرستید؟
حالا چیکار باید بکنیم؟ باید صبر کنیم به اون مقداری که خود تور به ما میگه. اینو چجوری باید بفهمیم؟ خب همین stem یه تابع داره که این کارو برای ما انجام میده:
که یه تایم بر حسب ثانیه به ما میده. اگه بخواید کدی داشته باشید که اینو بگیره و صبر کنه میتونید به این صورت استفاده کنید:
بریم برای بخش بعدی که با C بنویسیم.