📌 یک برنامه هیجان‌انگیز دیگر! در کانال پایتون!

به بهانه آموزش Python Automaion، امروز می‌خواهیم Telegram Proxy (Socks5) Automation را یاد بگیریم!

همان‌طور که مستحضر هستید، در داخل برنامه تلگرام، می‌توانیم از سه نوع Proxy استفاده نماییم:

- HTTP
- SOCKS5
- MTPROTO

فرض کنید که سایتی وجود دارد (به نشانی ذیل)، که هر چند دقیقه یک‌بار، فهرستی از IP / PORT های مربوط به پروتکل SOCKS را در آن منتشر می‌کند:

https://github.com/hookzof/socks5_list/blob/master/proxy.txt

این‌که بخواهیم به ازای هر IP / PORT، وارد تنظیمات تلگرام شده و اطلاعات IP / PORT را COPY / PASTE کرده و آن‌را تست نماییم، شاید زمان نسبتا زیادی را از ما بگیرد! چرا که ممکن است، بعضی از این IP / PORT ها اساسا اشتباه باشند! یا Service Provider آن‌ها، به کشور ایران سرویس ندهد! یا ایران، IP مذکور را فیلتر کرده باشد! و یا PORT مذکور به صورت موقت / دائم بسته شده باشد! و غیره...

به همین دلیل می‌خواهیم در زمان صرفه‌جویی کرده و کلی از اعمالی که می‌بایست دستی انجام دهیم را به صورت اتوماتیک (Automation) انجام دهیم!

و اما نحوه استفاده از این برنامه:

ابتدا وارد نشانی فوق شده و تمام فهرست IP / PORT های موجود را کپی کرده و در داخل فایلی به نام check_list.txt، کپی می‌کنیم، مثلا:

121.37.201.60:4145
121.37.201.60:4006
117.74.65.207:8017
120.79.21.48:30001
144.91.78.34:49368

سپس برنامه را اجرا می‌کنیم. برنامه به طور اتوماتیک، بررسی می‌کند که کدام‌یک از این IP / PORT ها باز یا بسته هستند! در صورتی که IP / PORT، امکان برقراری ارتباط نداشته باشد، اطلاعات آن‌را در فایلی به نام failure_list.txt و به شکل ذیل ذخیره می‌کند:

117.74.65.207:8017 : timed out
144.91.78.34:49368 : timed out

و اگر IP / PORT، امکان برقراری ارتباط داشته باشد، اطلاعات آن‌را در فایلی به نام success_list.txt و به شکل ذیل ذخیره می‌کند:

1 : https://t.me/socks?server=121.37.201.60&port=4145
2 : https://t.me/socks?server=121.37.201.60&port=4006
3 : https://t.me/socks?server=120.79.21.48&port=30001

حال کافی است که فایل success_list.txt را (بعد از اتمام اجرای برنامه) باز کرده و اطلاعات داخل آن را کپی کرده و در برنامه تلگرام، و مثلا در قسمت Saved Messages، آن‌ها را Paste نموده و سپس بر روی تک تک لینک‌ها کلیک کرده و تایید می‌نماییم، تا برقراری ارتباط با اینترنت، توسط برنامه تلگرام، با پروتکل SOCKS5، صورت پذیرد...

نکته: در ابتدای کار، اعلام کردم که وارد سایت مذکور شده و فهرست IP / PORT ها را کپی کرده و در فایلی به نام check_list.txt، آن‌ها را Paste می‌نماییم، حال آن‌که ما می‌توانیم با استفاده از Package / Module قدرتمندی به نام requests، همین مرحله اولیه را نیز به صورت اتوماتیک انجام دهیم! یعنی برنامه، ابتدا به نشانی مذکور متصل شده، و فایل فهرست IP / PORT ها را دانلود کرده و سپس فایل check_list.txt را خودش ایجاد نموده و سپس مراحل بعد را انجام دهد... این مرحله را به عنوان تمرین، به خود شما بزرگواران محول می‌کنم...

🛑 نکته: قابل توجه برادران ارزشی عزیز و گرامی، مدت‌هاست که پروتکل SOCKS5 در کل کشور مسدود شده و این برنامه، عملا در کشور عزیزمان ایران، کار نمی‌کند! و این سورس‌کد، صرفا جنبه آموزشی داشته و لطفا آن‌را پیراهن عثمان نکنید! سعی کنید از دانش و تجربه من استفاده کرده و لذت ببرید...

برای دریافت سورس‌کد، به کانال پایتون مراجعه نمایید.

#SourceCode #SourceCode10021
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
5👍5
📌 یک برنامه هیجان‌انگیز دیگر! در کانال پایتون!

به بهانه آموزش Python Automaion، امروز می‌خواهیم Telegram Proxy (Socks5) Automation را یاد بگیریم!

نکته: توضیحات این برنامه، در مطلب قبل:
https://t.me/DT_PYTHON_LEARNING/26

# **************************************************
import socket
from datetime import datetime

with open(file="check_List.txt", mode="r") as check_List_file:
check_list_items = check_List_file.readlines()

failure_list_file = open(file="failure_List.txt", mode="a")
success_list_file = open(file="success_List.txt", mode="w")

success_index = 0

for item in check_list_items:
item = item.replace("\r", "").replace("\n", "")
parts = item.split(":")
ip, port = (parts[0], int(parts[1]))

start_time = datetime.now()

print()
try:
address = (ip, port)
client_socket = socket.create_connection(address=address, timeout=1)
client_socket.close()

success_index += 1

url = f"{success_index:<4}: https://t.me/socks?server={ip}&port={port}"
print(url)
success_list_file.write(f"{url}\n")
except Exception as e:
error_message = f"{item:<21}: {str(e)}"
print(error_message)
failure_list_file.write(f"{error_message}\n")

finish_time = datetime.now()

duration = finish_time - start_time
print(f"Port Scanning Duration: {duration}")

failure_list_file.close()
success_list_file.close()
# **************************************************

#SourceCode #SourceCode10021
کانال پایتون:
@DT_PYTHON_LEARNING
ادمین:
@Dariush_Tasdighi
کانال اصلی:
@IranianExperts
.
6👍2