ساخت اسکریپت چک کردن سرعت اینترنت با پایتون
در دنیای امروز، سرعت اینترنت یکی از مهمترین فاکتورها در انجام بسیاری از فعالیتهاست. از کار و تحصیل گرفته تا سرگرمی و ارتباطات، همگی به یک اتصال اینترنتی پایدار و سریع وابسته هستند. گاهی اوقات نیاز داریم تا سرعت اینترنت خود را به صورت دورهای بررسی کنیم تا از کیفیت اتصال خود مطمئن شویم یا مشکلات احتمالی را شناسایی کنیم. در این مقاله، به آموزش ساخت یک اسکریپت پایتون برای چک کردن سرعت اینترنت میپردازیم. این آموزش در دسته بندی ‘اتوماسیون و اسکریپتنویسی’ قرار میگیرد و برای افراد با دانش پایه پایتون مناسب است.
پیشنیازها
قبل از شروع، اطمینان حاصل کنید که موارد زیر را در اختیار دارید:
- نصب پایتون: پایتون را از وبسایت رسمی آن (https://www.python.org) دانلود و نصب کنید.
- نصب کتابخانه ‘speedtest-cli’: این کتابخانه ابزاری برای اندازهگیری سرعت اینترنت از طریق خط فرمان است. برای نصب آن از دستور زیر در ترمینال یا خط فرمان استفاده کنید:
pip install speedtest-cli
مفهوم کلی اسکریپت
اسکریپت ما به این صورت عمل میکند:
- وارد کردن کتابخانه ‘speedtest-cli’.
- ایجاد یک شیء از کلاس ‘Speedtest’.
- انتخاب سرور مناسب برای تست (بر اساس موقعیت جغرافیایی).
- انجام تست دانلود.
- انجام تست آپلود.
- نمایش نتایج تست (سرعت دانلود، آپلود و پینگ).
کد پایتون
import speedtest
def check_internet_speed():
st = speedtest.Speedtest()
print("در حال جستجوی بهترین سرور...")
st.get_best_server()
print("در حال انجام تست دانلود...")
download_speed = st.download() / 1000000 # تبدیل به مگابیت بر ثانیه
print("در حال انجام تست آپلود...")
upload_speed = st.upload() / 1000000 # تبدیل به مگابیت بر ثانیه
print("در حال اندازهگیری پینگ...")
ping = st.results.ping
print(f"سرعت دانلود: {download_speed:.2f} مگابیت بر ثانیه")
print(f"سرعت آپلود: {upload_speed:.2f} مگابیت بر ثانیه")
print(f"پینگ: {ping:.2f} میلیثانیه")
if __name__ == "__main__":
check_internet_speed()
توضیح کد
import speedtest: این خط، کتابخانه ‘speedtest-cli’ را وارد برنامه میکند.def check_internet_speed():: این خط، یک تابع به نام ‘check_internet_speed’ تعریف میکند که تمام منطق اصلی اسکریپت در آن قرار دارد.st = speedtest.Speedtest(): این خط، یک شیء جدید از کلاس ‘Speedtest’ ایجاد میکند. این شیء برای انجام تستهای سرعت استفاده میشود.print("در حال جستجوی بهترین سرور..."): این خط، یک پیام اطلاعرسانی را در کنسول چاپ میکند.st.get_best_server(): این خط، بهترین سرور را برای تست سرعت بر اساس موقعیت جغرافیایی شما انتخاب میکند.print("در حال انجام تست دانلود..."): این خط، یک پیام اطلاعرسانی را در کنسول چاپ میکند.download_speed = st.download() / 1000000: این خط، تست دانلود را انجام میدهد و نتیجه را به مگابیت بر ثانیه تبدیل میکند. مقدار برگشتی بر حسب بیت بر ثانیه است، بنابراین آن را بر 1000000 تقسیم میکنیم.print("در حال انجام تست آپلود..."): این خط، یک پیام اطلاعرسانی را در کنسول چاپ میکند.upload_speed = st.upload() / 1000000: این خط، تست آپلود را انجام میدهد و نتیجه را به مگابیت بر ثانیه تبدیل میکند.print("در حال اندازهگیری پینگ..."): این خط، یک پیام اطلاعرسانی را در کنسول چاپ میکند.ping = st.results.ping: این خط، مقدار پینگ را از نتایج تست استخراج میکند.print(f"سرعت دانلود: {download_speed:.2f} مگابیت بر ثانیه"): این خط، سرعت دانلود را با دو رقم اعشار در کنسول چاپ میکند.print(f"سرعت آپلود: {upload_speed:.2f} مگابیت بر ثانیه"): این خط، سرعت آپلود را با دو رقم اعشار در کنسول چاپ میکند.print(f"پینگ: {ping:.2f} میلیثانیه"): این خط، مقدار پینگ را با دو رقم اعشار در کنسول چاپ میکند.if __name__ == "__main__":: این خط، بررسی میکند که آیا اسکریپت به طور مستقیم اجرا میشود یا به عنوان یک ماژول وارد شده است.check_internet_speed(): این خط، تابع ‘check_internet_speed’ را فراخوانی میکند تا تست سرعت انجام شود.
اجرای اسکریپت
برای اجرای اسکریپت، فایل پایتون را با استفاده از دستور زیر در ترمینال یا خط فرمان اجرا کنید:
python your_script_name.py
(به جای ‘your_script_name.py’ نام فایل پایتون خود را قرار دهید.)
بهبود اسکریپت
میتوانید اسکریپت را به روشهای مختلفی بهبود دهید:
- ذخیره نتایج در فایل: میتوانید نتایج تست را در یک فایل ذخیره کنید تا بتوانید تاریخچه سرعت اینترنت خود را پیگیری کنید.
- ارسال ایمیل: میتوانید اسکریپت را طوری تنظیم کنید که نتایج تست را به صورت خودکار از طریق ایمیل برای شما ارسال کند.
- استفاده از GUI: میتوانید یک رابط کاربری گرافیکی (GUI) برای اسکریپت ایجاد کنید تا استفاده از آن آسانتر شود.
- انتخاب سرور دستی: میتوانید به کاربر اجازه دهید تا سرور مورد نظر خود را برای تست انتخاب کند.
- تستهای متعدد: میتوانید چندین تست سرعت را انجام دهید و میانگین نتایج را محاسبه کنید تا دقت بیشتری داشته باشید.
ذخیره نتایج در فایل
import speedtest
import datetime
def check_internet_speed():
st = speedtest.Speedtest()
st.get_best_server()
download_speed = st.download() / 1000000
upload_speed = st.upload() / 1000000
ping = st.results.ping
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
with open("internet_speed_log.txt", "a") as f:
f.write(f"{timestamp} - دانلود: {download_speed:.2f} مگابیت بر ثانیه, آپلود: {upload_speed:.2f} مگابیت بر ثانیه, پینگ: {ping:.2f} میلیثانیهn")
print(f"نتایج تست در فایل internet_speed_log.txt ذخیره شد.")
if __name__ == "__main__":
check_internet_speed()
این کد، نتایج تست را به همراه تاریخ و زمان در فایل ‘internet_speed_log.txt’ ذخیره میکند.
نتیجهگیری
در این مقاله، نحوه ساخت یک اسکریپت پایتون برای چک کردن سرعت اینترنت را آموزش دادیم. این اسکریپت میتواند ابزاری مفید برای نظارت بر کیفیت اتصال اینترنت شما باشد. با استفاده از ایدههای ارائه شده در بخش ‘بهبود اسکریپت’، میتوانید این اسکریپت را به نیازهای خود سفارشی کنید و آن را به یک ابزار قدرتمندتر تبدیل کنید. امیدواریم این آموزش برای شما مفید بوده باشد.

بدون دیدگاه