• 0

كيف أحصل على عنوان IP محلي عن طريق البايثون ؟

احتاج إلى الحصول على عنوان IP في نظام لينكس، هل هنالك طريقة لأحصل على عنوان IP المحلي عن طريق استخدام المكتبات القياسية للبايثون ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هنالك عدة طرق للحصول على IP محلي عن طريق البايثون فعلى سبيل المثال يمكنك استخدام تابع gethostbyname من مكتبة socket كما في المثال التالي:

import socket
socket.gethostbyname(socket.gethostname())

هذا الأمر قد لا يعمل دائما، فهو يرجع 127.0.0.1 في الأجهزة التي لديها hostname ذات عنوان 127.0.0.1 في /etc/hosts.
هنالك حل آخر إلا أنّه يفترض وجود إتصال بالإنترنت بدون بروكسي محلي، وهو عن طريق استخدام تابع getsockname من مكتبة socket كما في هذا المثال:

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("gmail.com",80))
print(s.getsockname()[0])
s.close()

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن