class TestIW(object): def setup(self): try: self.iw = IW() except NetlinkError as e: if e.code == errno.ENOENT: raise SkipTest('nl80211 not supported') else: raise ifaces = self.iw.get_interfaces_dump() if not ifaces: raise SkipTest('no wireless interfaces found') self.ifname = ifaces[0].get_attr('NL80211_ATTR_IFNAME') self.ifindex = ifaces[0].get_attr('NL80211_ATTR_IFINDEX') self.wiphy = ifaces[0].get_attr('NL80211_ATTR_WIPHY') def teardown(self): self.iw.close() def test_list_wiphy(self): self.iw.list_wiphy() def test_list_dev(self): self.iw.list_dev() def test_scan(self): require_user('root') self.iw.scan(self.ifindex)
class TestIW(object): def setup(self): try: self.iw = IW() except NetlinkError as e: if e.code == errno.ENOENT: raise SkipTest('nl80211 not supported') else: raise ifaces = self.iw.get_interfaces_dump() if not ifaces: raise SkipTest('no wireless interfaces found') for i in ifaces: self.ifname = i.get_attr('NL80211_ATTR_IFNAME') self.ifindex = i.get_attr('NL80211_ATTR_IFINDEX') self.wiphy = i.get_attr('NL80211_ATTR_WIPHY') if self.ifindex: return raise Exception('can not detect the interface to use') def teardown(self): self.iw.close() def test_list_wiphy(self): self.iw.list_wiphy() def test_list_dev(self): self.iw.list_dev() def test_scan(self): require_user('root') with IPRoute() as ipr: ipr.link('set', index=self.ifindex, state='up') self.iw.scan(self.ifindex)
class TestIW(object): def setup(self): try: self.iw = IW() except NetlinkError as e: if e.code == errno.ENOENT: raise SkipTest('nl80211 not supported') else: raise ifaces = self.iw.get_interfaces_dump() if not ifaces: raise SkipTest('no wireless interfaces found') self.ifname = ifaces[0].get_attr('NL80211_ATTR_IFNAME') self.ifindex = ifaces[0].get_attr('NL80211_ATTR_IFINDEX') self.wiphy = ifaces[0].get_attr('NL80211_ATTR_WIPHY') def teardown(self): self.iw.close() def test_list_wiphy(self): self.iw.list_wiphy() def test_list_dev(self): self.iw.list_dev() def test_scan(self): require_user('root') self.iw.scan(self.ifindex)
class TestIW(object): def setup(self): try: self.iw = IW() except NetlinkError as e: if e.code == errno.ENOENT: raise SkipTest('nl80211 not supported') else: raise ifaces = self.iw.get_interfaces_dump() if not ifaces: raise SkipTest('no wireless interfaces found') for i in ifaces: self.ifname = i.get_attr('NL80211_ATTR_IFNAME') self.ifindex = i.get_attr('NL80211_ATTR_IFINDEX') self.wiphy = i.get_attr('NL80211_ATTR_WIPHY') if self.ifindex: return raise Exception('can not detect the interface to use') def teardown(self): self.iw.close() def test_list_wiphy(self): self.iw.list_wiphy() def test_list_dev(self): self.iw.list_dev() def test_scan(self): require_user('root') with IPRoute() as ipr: ipr.link('set', index=self.ifindex, state='up') self.iw.scan(self.ifindex)
from pyroute2 import IW # register IW to get all the messages iw = IW(groups=0xfff) print(iw.get()) iw.close()
from pyroute2 import IW from pyroute2 import IPRoute from pyroute2.netlink import NetlinkError # interface name to check ifname = 'lo' ip = IPRoute() iw = IW() index = ip.link_lookup(ifname=ifname)[0] try: iw.get_interface_by_ifindex(index) print("wireless interface") except NetlinkError as e: if e.code == 19: # 19 'No such device' print("not a wireless interface") finally: iw.close() ip.close()