كيف تقيس سرعة الإنترنت في Python: دليل عملي مع أمثلة
قياس سرعة الإنترنت مهمة أساسية في التطوير الحديث. هذه الوظيفة ضرورية عند إنشاء أنظمة المراقبة، واختبار جودة اتصالات الشبكة، وللاستخدام الشخصي.
تقدم Python حلاً فعالاً لأتمتة عملية قياس سرعة الإنترنت. تتيح مكتبة speedtest الحصول على بيانات سرعة الاتصال مباشرة من الكود البرمجي.
لماذا تحتاج إلى قياس سرعة الإنترنت برمجياً
القياس التلقائي لسرعة الإنترنت يحل العديد من المهام العملية:
• مراقبة استقرار اتصال الشبكة في الوقت الفعلي • التحكم في جودة خدمات مزود الإنترنت • التكامل مع أنظمة IoT وخدمات الشبكة • أتمتة التقارير عن سرعة الإنترنت • اكتشاف مشاكل أجهزة الشبكة • تخطيط تحميل الشبكة
ما هي مكتبة speedtest
مكتبة speedtest الخاصة بـ Python توفر تفاعلاً برمجياً مع خدمة Speedtest.net الشهيرة. تتيح إجراء قياسات شاملة لمعلمات اتصال الإنترنت.
الإمكانيات الرئيسية للمكتبة
تقيس المكتبة المعلمات الرئيسية التالية:
• سرعة تحميل البيانات (Download Speed) • سرعة رفع البيانات (Upload Speed) • زمن استجابة الشبكة (Ping/Latency) • التذبذب (Jitter) • فقدان الحزم
تثبيت وإعداد مكتبة speedtest
عملية التثبيت
لتثبيت المكتبة، استخدم مدير الحزم pip. افتح سطر الأوامر أو الطرفية ونفذ الأمر التالي:
pip install speedtest-cli
اسم المكتبة هو speedtest-cli، ويمكن استخدامها عبر سطر الأوامر أو داخل نصوص Python.
التحقق من صحة التثبيت
بعد التثبيت، يُنصح بالتحقق من عمل المكتبة بشكل صحيح:
import speedtest
print("تم تثبيت مكتبة speedtest بنجاح")
مثال أساسي لقياس سرعة الإنترنت
أبسط نص برمجي للقياس
import speedtest
st = speedtest.Speedtest()
download_speed = st.download() / 1024 / 1024 # تحويل إلى ميغابت في الثانية
upload_speed = st.upload() / 1024 / 1024 # تحويل إلى ميغابت في الثانية
ping_result = st.results.ping
print(f"سرعة التحميل: {download_speed:.2f} Mbps")
print(f"سرعة الرفع: {upload_speed:.2f} Mbps")
print(f"زمن الاستجابة: {ping_result:.2f} ms")
نتيجة نموذجية للتنفيذ
سرعة التحميل: 92.34 Mbps
سرعة الرفع: 25.67 Mbps
زمن الاستجابة: 15.23 ms
كيف تعمل مكتبة speedtest
خوارزمية قياس السرعة
تتم عملية قياس سرعة الإنترنت على عدة مراحل:
• تحديد الموقع الجغرافي للمستخدم • اختيار أقرب خادم اختبار • قياس زمن الاستجابة للخادم • تحميل بيانات اختبار لقياس سرعة التحميل • إرسال بيانات اختبار لقياس سرعة الرفع • حساب النتائج وعرضها
تفاصيل تقنية للعملية
تستخدم المكتبة تعدد المهام (multithreading) للحصول على قياسات أكثر دقة. تنشئ عدة اتصالات متوازية مع الخادم، مما يسمح بالاستفادة القصوى من سعة النطاق الترددي.
طرق ودوال مكتبة speedtest
الطرق الأساسية
| الطريقة | الوصف | القيمة المُرجعة |
|---|---|---|
| .download() | اختبار سرعة التحميل | السرعة بالبت/ثانية |
| .upload() | اختبار سرعة الرفع | السرعة بالبت/ثانية |