def msg_handler(m, a): try: e, attr = genl.py_genlmsg_parse(nl.nlmsg_hdr(m), 0, nl80211.NL80211_ATTR_MAX, None) if nl80211.NL80211_ATTR_WIPHY_NAME in attr: print('wiphy %s' % nl.nla_get_string(attr[nl80211.NL80211_ATTR_WIPHY_NAME])) if nl80211.NL80211_ATTR_WIPHY_BANDS in attr: fpol = nl.nla_policy_array(nl80211.NL80211_FREQUENCY_ATTR_MAX + 1) fpol[nl80211.NL80211_FREQUENCY_ATTR_FREQ].type = nl.NLA_U32 fpol[nl80211.NL80211_FREQUENCY_ATTR_DISABLED].type = nl.NLA_FLAG fpol[ nl80211.NL80211_FREQUENCY_ATTR_PASSIVE_SCAN].type = nl.NLA_FLAG fpol[nl80211.NL80211_FREQUENCY_ATTR_NO_IBSS].type = nl.NLA_FLAG fpol[nl80211.NL80211_FREQUENCY_ATTR_RADAR].type = nl.NLA_FLAG fpol[nl80211.NL80211_FREQUENCY_ATTR_MAX_TX_POWER].type = nl.NLA_U32 nattrs = nl.nla_get_nested(attr[nl80211.NL80211_ATTR_WIPHY_BANDS]) for nattr in nattrs: handle_band(nattr, fpol) if nl80211.NL80211_ATTR_CIPHER_SUITES in attr: ciphers = nl.nla_data(attr[nl80211.NL80211_ATTR_CIPHER_SUITES]) num = len(ciphers) / 4 if num > 0: print("\tSupported Ciphers:") for i in range(0, num, 4): print("\t\t* %s" % cipher_name(ciphers[i:i + 4])) if nl80211.NL80211_ATTR_SUPPORTED_IFTYPES in attr: print("\tSupported interface modes:") ifattr = nl.nla_get_nested( attr[nl80211.NL80211_ATTR_SUPPORTED_IFTYPES]) for nl_mode in ifattr: print("\t\t* %s" % nl80211.nl80211_iftype2str[nl.nla_type(nl_mode)]) if nl80211.NL80211_ATTR_SOFTWARE_IFTYPES in attr: print("\tsoftware interface modes (can always be added):") ifattr = nl.nla_get_nested( attr[nl80211.NL80211_ATTR_SOFTWARE_IFTYPES]) for nl_mode in ifattr: print("\t\t* %s" % nl80211.nl80211_iftype2str[nl.nla_type(nl_mode)]) return nl.NL_SKIP except Exception as e: (t, v, tb) = sys.exc_info() print v.message traceback.print_tb(tb)
def msg_handler(m, a): try: e, attr = genl.py_genlmsg_parse(nl.nlmsg_hdr(m), 0, nl80211.NL80211_ATTR_MAX, None) if nl80211.NL80211_ATTR_WIPHY_NAME in attr: print('wiphy %s' % nl.nla_get_string(attr[nl80211.NL80211_ATTR_WIPHY_NAME])) if nl80211.NL80211_ATTR_WIPHY_BANDS in attr: fpol = nl.nla_policy_array(nl80211.NL80211_FREQUENCY_ATTR_MAX + 1) fpol[nl80211.NL80211_FREQUENCY_ATTR_FREQ].type = nl.NLA_U32 fpol[nl80211.NL80211_FREQUENCY_ATTR_DISABLED].type = nl.NLA_FLAG fpol[nl80211.NL80211_FREQUENCY_ATTR_PASSIVE_SCAN].type = nl.NLA_FLAG fpol[nl80211.NL80211_FREQUENCY_ATTR_NO_IBSS].type = nl.NLA_FLAG fpol[nl80211.NL80211_FREQUENCY_ATTR_RADAR].type = nl.NLA_FLAG fpol[nl80211.NL80211_FREQUENCY_ATTR_MAX_TX_POWER].type = nl.NLA_U32 nattrs = nl.nla_get_nested(attr[nl80211.NL80211_ATTR_WIPHY_BANDS]) for nattr in nattrs: handle_band(nattr, fpol) if nl80211.NL80211_ATTR_CIPHER_SUITES in attr: ciphers = nl.nla_data(attr[nl80211.NL80211_ATTR_CIPHER_SUITES]) num = len(ciphers) / 4 if num > 0: print("\tSupported Ciphers:"); for i in range(0, num, 4): print("\t\t* %s" % cipher_name(ciphers[i:i+4])) if nl80211.NL80211_ATTR_SUPPORTED_IFTYPES in attr: print("\tSupported interface modes:") ifattr = nl.nla_get_nested(attr[nl80211.NL80211_ATTR_SUPPORTED_IFTYPES]) for nl_mode in ifattr: print("\t\t* %s" % nl80211.nl80211_iftype2str[nl.nla_type(nl_mode)]) if nl80211.NL80211_ATTR_SOFTWARE_IFTYPES in attr: print("\tsoftware interface modes (can always be added):") ifattr = nl.nla_get_nested(attr[nl80211.NL80211_ATTR_SOFTWARE_IFTYPES]) for nl_mode in ifattr: print("\t\t* %s" % nl80211.nl80211_iftype2str[nl.nla_type(nl_mode)]) return nl.NL_SKIP except Exception as e: (t,v,tb) = sys.exc_info() print v.message traceback.print_tb(tb)
import sys import traceback import struct from netlink.capi import (nla_policy_array, NLA_FLAG, NLA_U8, NLA_U16, NLA_U32, NLA_U64, NLA_NESTED, nla_put_u32, nla_put, NL_CB_DEFAULT, nlmsg_hdr, NL_SKIP) from netlink.core import NLM_F_REQUEST, NLM_F_ACK, NLM_F_DUMP from netlink.genl.capi import py_genlmsg_parse import py80211.generated.defs as nl80211 from py80211.generated.policy import nl80211_policy from base import * import factory bss_param_policy = nla_policy_array(nl80211.STA_BSS_PARAM_MAX + 1) bss_param_policy[nl80211.STA_BSS_PARAM_CTS_PROT].type = NLA_FLAG bss_param_policy[nl80211.STA_BSS_PARAM_SHORT_PREAMBLE].type = NLA_FLAG bss_param_policy[nl80211.STA_BSS_PARAM_SHORT_SLOT_TIME].type = NLA_FLAG bss_param_policy[nl80211.STA_BSS_PARAM_DTIM_PERIOD].type = NLA_U8 bss_param_policy[nl80211.STA_BSS_PARAM_BEACON_INTERVAL].type = NLA_U16 class bss_param(nl80211_object): pass bitrate_policy = nla_policy_array(nl80211.RATE_INFO_MAX + 1) bitrate_policy[nl80211.RATE_INFO_BITRATE].type = NLA_U16 bitrate_policy[nl80211.RATE_INFO_BITRATE32].type = NLA_U32 bitrate_policy[nl80211.RATE_INFO_MCS].type = NLA_U8
import traceback from netlink.capi import (nla_policy_array, NLA_U64, NLA_U32, NLA_U16, NLA_U8, NLA_UNSPEC, NLA_FLAG, NL_CB_DEFAULT, nla_put, nla_put_u32, nlmsg_hdr, py_nla_parse_nested, NL_SKIP, nla_nest_start, nla_nest_end) from netlink.core import NLM_F_REQUEST, NLM_F_ACK, NLM_F_DUMP from netlink.genl.capi import genlmsg_hdr, py_genlmsg_parse import py80211.generated.defs as nl80211 from py80211.generated.policy import nl80211_policy from base import * import factory bss_policy = nla_policy_array(nl80211.BSS_MAX + 1) bss_policy[nl80211.BSS_TSF].type = NLA_U64 bss_policy[nl80211.BSS_FREQUENCY].type = NLA_U32 bss_policy[nl80211.BSS_BSSID].type = NLA_UNSPEC bss_policy[nl80211.BSS_BEACON_INTERVAL].type = NLA_U16 bss_policy[nl80211.BSS_CAPABILITY].type = NLA_U16 bss_policy[nl80211.BSS_INFORMATION_ELEMENTS].type = NLA_UNSPEC bss_policy[nl80211.BSS_SIGNAL_MBM].type = NLA_U32 bss_policy[nl80211.BSS_SIGNAL_MBM].signed = True bss_policy[nl80211.BSS_SIGNAL_UNSPEC].type = NLA_U8 bss_policy[nl80211.BSS_STATUS].type = NLA_U32 bss_policy[nl80211.BSS_SEEN_MS_AGO].type = NLA_U32 bss_policy[nl80211.BSS_BEACON_IES].type = NLA_UNSPEC bss_policy[nl80211.BSS_BEACON_TSF].type = NLA_U64 bss_policy[nl80211.BSS_CHAN_WIDTH].type = NLA_U32 bss_policy[nl80211.BSS_PRESP_DATA].type = NLA_FLAG
import sys import traceback import struct from netlink.capi import (nla_policy_array, NLA_FLAG, NLA_U32, NLA_U16, NLA_U8, NLA_NESTED, NLA_UNSPEC, nla_get_u32, nla_put_u32, nla_put_flag, NL_CB_DEFAULT, NL_SKIP) from netlink.core import NLM_F_REQUEST, NLM_F_ACK, NLM_F_DUMP from netlink.genl.capi import py_genlmsg_parse import generated.defs as nl80211 from generated.policy import nl80211_policy from base import * import factory rate_policy = nla_policy_array(nl80211.BITRATE_ATTR_MAX + 1) rate_policy[nl80211.BITRATE_ATTR_RATE].type = NLA_U32 rate_policy[nl80211.BITRATE_ATTR_2GHZ_SHORTPREAMBLE].type = NLA_FLAG class wiphy_rate(nl80211_object): pass freq_policy = nla_policy_array(nl80211.FREQUENCY_ATTR_MAX + 1) freq_policy[nl80211.FREQUENCY_ATTR_FREQ].type = NLA_U32 freq_policy[nl80211.FREQUENCY_ATTR_DISABLED].type = NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_NO_IBSS].type = NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_NO_IR].type = NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_RADAR].type = NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_MAX_TX_POWER].type = NLA_U32
import sys import traceback import struct from netlink.capi import (nla_policy_array, NLA_FLAG, NLA_U8, NLA_U16, NLA_U32, NLA_U64, NLA_NESTED, nla_put_u32, nla_put, NL_CB_DEFAULT, nlmsg_hdr, NL_SKIP) from netlink.core import NLM_F_REQUEST, NLM_F_ACK, NLM_F_DUMP from netlink.genl.capi import py_genlmsg_parse import generated.defs as nl80211 from generated.policy import nl80211_policy from base import * import factory bss_param_policy = nla_policy_array(nl80211.STA_BSS_PARAM_MAX + 1) bss_param_policy[nl80211.STA_BSS_PARAM_CTS_PROT].type = NLA_FLAG bss_param_policy[nl80211.STA_BSS_PARAM_SHORT_PREAMBLE].type = NLA_FLAG bss_param_policy[nl80211.STA_BSS_PARAM_SHORT_SLOT_TIME].type = NLA_FLAG bss_param_policy[nl80211.STA_BSS_PARAM_DTIM_PERIOD].type = NLA_U8 bss_param_policy[nl80211.STA_BSS_PARAM_BEACON_INTERVAL].type = NLA_U16 class bss_param(nl80211_object): pass bitrate_policy = nla_policy_array(nl80211.RATE_INFO_MAX + 1) bitrate_policy[nl80211.RATE_INFO_BITRATE].type = NLA_U16 bitrate_policy[nl80211.RATE_INFO_BITRATE32].type = NLA_U32 bitrate_policy[nl80211.RATE_INFO_MCS].type = NLA_U8 bitrate_policy[nl80211.RATE_INFO_40_MHZ_WIDTH].type = NLA_FLAG bitrate_policy[nl80211.RATE_INFO_SHORT_GI].type = NLA_FLAG
import sys import traceback import netlink.capi as nl import netlink.core as nlc import netlink.genl.capi as genl import generated.defs as nl80211 from generated.policy import nl80211_policy from base import * rate_policy = nl.nla_policy_array(nl80211.BITRATE_ATTR_MAX + 1) rate_policy[nl80211.BITRATE_ATTR_RATE].type = nl.NLA_U32 rate_policy[nl80211.BITRATE_ATTR_2GHZ_SHORTPREAMBLE].type = nl.NLA_FLAG class wiphy_rate(nl80211_object): policy = rate_policy max_attr = len(rate_policy) def __init__(self, attrs): nl80211_object.__init__(self, attrs, rate_policy) freq_policy = nl.nla_policy_array(nl80211.FREQUENCY_ATTR_MAX + 1) freq_policy[nl80211.FREQUENCY_ATTR_FREQ].type = nl.NLA_U32 freq_policy[nl80211.FREQUENCY_ATTR_DISABLED].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_NO_IBSS].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_PASSIVE_SCAN].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_RADAR].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_MAX_TX_POWER].type = nl.NLA_U32 freq_policy[nl80211.FREQUENCY_ATTR_NO_HT40_MINUS].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_NO_HT40_PLUS].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_NO_80MHZ].type = nl.NLA_FLAG
import sys import traceback import netlink.capi as nl import netlink.core as nlc import netlink.genl.capi as genl import generated.defs as nl80211 from generated.policy import nl80211_policy from base import * rate_policy = nl.nla_policy_array(nl80211.BITRATE_ATTR_MAX + 1) rate_policy[nl80211.BITRATE_ATTR_RATE].type = nl.NLA_U32 rate_policy[nl80211.BITRATE_ATTR_2GHZ_SHORTPREAMBLE].type = nl.NLA_FLAG class wiphy_rate(nl80211_object): policy = rate_policy max_attr = len(rate_policy) def __init__(self, attrs): nl80211_object.__init__(self, attrs, rate_policy) freq_policy = nl.nla_policy_array(nl80211.FREQUENCY_ATTR_MAX + 1) freq_policy[nl80211.FREQUENCY_ATTR_FREQ].type = nl.NLA_U32 freq_policy[nl80211.FREQUENCY_ATTR_DISABLED].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_NO_IBSS].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_PASSIVE_SCAN].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_RADAR].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_MAX_TX_POWER].type = nl.NLA_U32
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # import sys import traceback import struct import netlink.capi as nl import netlink.core as nlc import netlink.genl.capi as genl import generated.defs as nl80211 from generated.policy import nl80211_policy from base import * import factory rate_policy = nl.nla_policy_array(nl80211.BITRATE_ATTR_MAX + 1) rate_policy[nl80211.BITRATE_ATTR_RATE].type = nl.NLA_U32 rate_policy[nl80211.BITRATE_ATTR_2GHZ_SHORTPREAMBLE].type = nl.NLA_FLAG class wiphy_rate(nl80211_object): pass freq_policy = nl.nla_policy_array(nl80211.FREQUENCY_ATTR_MAX + 1) freq_policy[nl80211.FREQUENCY_ATTR_FREQ].type = nl.NLA_U32 freq_policy[nl80211.FREQUENCY_ATTR_DISABLED].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_NO_IBSS].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_NO_IR].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_RADAR].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_MAX_TX_POWER].type = nl.NLA_U32 freq_policy[nl80211.FREQUENCY_ATTR_NO_HT40_MINUS].type = nl.NLA_FLAG freq_policy[nl80211.FREQUENCY_ATTR_NO_HT40_PLUS].type = nl.NLA_FLAG
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # import sys import traceback import netlink.capi as nl import netlink.core as nlc import netlink.genl.capi as genl import generated.defs as nl80211 from generated.policy import nl80211_policy from base import * import factory bss_policy = nl.nla_policy_array(nl80211.BSS_MAX + 1) bss_policy[nl80211.BSS_TSF].type = nl.NLA_U64 bss_policy[nl80211.BSS_FREQUENCY].type = nl.NLA_U32 bss_policy[nl80211.BSS_BSSID].type = nl.NLA_UNSPEC bss_policy[nl80211.BSS_BEACON_INTERVAL].type = nl.NLA_U16 bss_policy[nl80211.BSS_CAPABILITY].type = nl.NLA_U16 bss_policy[nl80211.BSS_INFORMATION_ELEMENTS].type = nl.NLA_UNSPEC bss_policy[nl80211.BSS_SIGNAL_MBM].type = nl.NLA_U32 bss_policy[nl80211.BSS_SIGNAL_MBM].signed = True bss_policy[nl80211.BSS_SIGNAL_UNSPEC].type = nl.NLA_U8 bss_policy[nl80211.BSS_STATUS].type = nl.NLA_U32 bss_policy[nl80211.BSS_SEEN_MS_AGO].type = nl.NLA_U32 bss_policy[nl80211.BSS_BEACON_IES].type = nl.NLA_UNSPEC bss_policy[nl80211.BSS_BEACON_TSF].type = nl.NLA_U64 bss_policy[nl80211.BSS_CHAN_WIDTH].type = nl.NLA_U32 bss_policy[nl80211.BSS_PRESP_DATA].type = nl.NLA_FLAG