Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall/lib/networking.py
diff options
context:
space:
mode:
Diffstat (limited to 'archinstall/lib/networking.py')
-rw-r--r--archinstall/lib/networking.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/archinstall/lib/networking.py b/archinstall/lib/networking.py
new file mode 100644
index 00000000..ae4126a9
--- /dev/null
+++ b/archinstall/lib/networking.py
@@ -0,0 +1,20 @@
+import fcntl
+import socket
+import struct
+from collections import OrderedDict
+
+from .exceptions import *
+
+def getHwAddr(ifname):
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ info = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', bytes(ifname, 'utf-8')[:15]))
+ return ':'.join('%02x' % b for b in info[18:24])
+
+def list_interfaces(skip_loopback=True):
+ interfaces = OrderedDict()
+ for index, iface in socket.if_nameindex():
+ if skip_loopback and iface == 'lo': continue
+
+ mac = getHwAddr(iface).replace(':', '-')
+ interfaces[mac] = iface
+ return interfaces