سؤال

كيف يمكنني القيام بالأشياء التالية في Python:

  1. قم بإدراج جميع واجهات IP على الجهاز الحالي.
  2. تلقي التحديثات حول التغييرات في واجهات الشبكة (ترتفع، تنخفض، وتغيير عنوان IP).

أي حزمة python المتاحة في أوبونتو هاردي سوف تفعل.

هل كانت مفيدة؟

المحلول

أعتقد أن أفضل طريقة للقيام بذلك dbus-python..

ال الدورة التعليمية تلامس على واجهات الشبكة قليلا:

import dbus
bus = dbus.SystemBus()
proxy = bus.get_object('org.freedesktop.NetworkManager',
                       '/org/freedesktop/NetworkManager/Devices/eth0')
# proxy is a dbus.proxies.ProxyObject

نصائح أخرى

لقد كنت أستخدم التعليمات البرمجية التالية،

temp =  str(os.system("ifconfig -a | awk '$2~/^Link/{_1=$1;getline;if($2~/^addr/){print _1" "}}'"))

سيعطي واجهات الشبكة "UP"

على سبيل المثال ETH0، ETH2، WLAN0

لا، لا ... لا تحتاج إلى إزعاج نظام Os.System () أو DBUS API.

ما تحتاجه حقا هو استخدام API NETLINK لتنفيذ هذا. إما استخدام libnl. واجهة (netlink.route.link) أو التعامل مع رسائل netlink بنفسك. إلقاء نظرة على هذا المثال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top