Python, Detect Relevant Networks?

Viewed 31

In python I took a look at: https://pypi.org/project/netifaces/

But how can I use this library to detect which are relevant (ie actual network which devices are connected to)?

For example, my laptop is connected only to wifi network, but the output of the following program is:

import netifaces

if __name__ == '__main__':
    print(netifaces.interfaces())
    for iface in netifaces.interfaces():
        #print(iface)
        print(netifaces.ifaddresses(iface))


['lo0', 'gif0', 'stf0', 'en6', 'ap1', 'en0', 'awdl0', 'llw0', 'en3', 'en4', 'en1', 'en2', 'bridge0', 'utun0', 'utun1', 'utun2', 'utun3', 'utun4', 'utun5', 'utun6', 'utun7', 'utun8']
{2: [{'addr': '127.0.0.1', 'netmask': '255.0.0.0', 'peer': '127.0.0.1'}], 30: [{'addr': '::1', 'netmask': 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128', 'peer': '::1', 'flags': 0}, {'addr': 'fe80::1%lo0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{}
{}
{18: [{'addr': 'ac:de:48:00:11:22'}], 30: [{'addr': 'fe80::aede:48ff:fe00:1122%en6', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{18: [{'addr': 'fa:ff:c2:05:aa:71'}]}
{18: [{'addr': 'f8:ff:c2:05:aa:71'}], 30: [{'addr': 'fe80::14d9:10f6:b605:46bd%en0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1024}, {'addr': '2a10:8010:d894:0:8de:8a9:ea3a:cd6a', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 1088}, {'addr': '2a10:8010:d894:0:19de:c2d8:dd80:95fd', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 192}], 2: [{'addr': '10.0.0.5', 'netmask': '255.255.255.0', 'broadcast': '10.0.0.255'}]}
{18: [{'addr': '96:4e:b0:d7:29:0c'}], 30: [{'addr': 'fe80::944e:b0ff:fed7:290c%awdl0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{18: [{'addr': '96:4e:b0:d7:29:0c'}], 30: [{'addr': 'fe80::944e:b0ff:fed7:290c%llw0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{18: [{'addr': '82:43:7a:c3:b8:05'}]}
{18: [{'addr': '82:43:7a:c3:b8:04'}]}
{18: [{'addr': '82:43:7a:c3:b8:01'}]}
{18: [{'addr': '82:43:7a:c3:b8:00'}]}
{18: [{'addr': '82:43:7a:c3:b8:01'}]}
{30: [{'addr': 'fe80::446c:1de1:7516:5c37%utun0', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{30: [{'addr': 'fe80::e9e7:de94:f2b:9726%utun1', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{30: [{'addr': 'fe80::ce81:b1c:bd2c:69e%utun2', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{30: [{'addr': 'fe80::5eab:b275:14e5:e863%utun3', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{30: [{'addr': 'fe80::33a4:4787:95ea:8de3%utun4', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{30: [{'addr': 'fe80::dfad:99ca:91c3:f5c0%utun5', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{30: [{'addr': 'fe80::f1c2:e06a:e37c:be4f%utun6', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{30: [{'addr': 'fe80::ace7:df20:aa22:935a%utun7', 'netmask': 'ffff:ffff:ffff:ffff::/64', 'flags': 0}]}
{2: [{'addr': '172.31.16.1', 'netmask': '255.255.255.0', 'peer': '172.31.16.1'}]}

While I'm expecting to get only the wifi network which my laptop is connected to (in case my laptop was connected to additional Ethernet then I want it to return 2).

0 Answers
Related