Repository URL to install this package:
|
Version:
1.0.7~rc2 ▾
|
wlanpi-profiler
/
opt
/
wlanpi-profiler
/
lib
/
python3.7
/
site-packages
/
profiler
/
__pycache__
/
helpers.cpython-37.pyc
|
|---|
B
øuã
@ sè d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
mZ ddlmZ ddlmZ ddlmZ ddlmZmZmZmZ yddlZW nN ek
r Z z.ejdkràed n
ee e e j ¡ W ddZ[X Y nX ee!d
ddZ"ye"d
dgZ#W n* e$k
rR ed e e j ¡ Y nX ye"ddgZ#W n* e$k
r ed e e j ¡ Y nX ddl%m%Z% ddl&m'Z'm(Z( dZ)ddddZ*e!e+dddZ,e!e!dddZ-ej.ddd Z/e!e0dd!d"d#Z1edd$d%Z2ej3ed&d'd(Z4e!ej3d)d*d+Z5e0dd,d-Z6e0dd.d/Z7ee0d&d0d1Z8e0dd2d3Z9edd&d4d5Z:e+e;d6d7d8Z<G d9d: d:ej=Z>e!dd;d<Z?d=d> Z@edd&d?d@ZAeG dAdB dBZBe0ddCdDZCdS )Eza
profiler.helpers
~~~~~~~~~~~~~~~~
provides init functions that are used to help setup the app.
é N)Ú b64encode)Ú dataclass)Ú strtobool)Úctime)ÚAnyÚDictÚListÚUnionÚmanufz required module manuf not found.)ÚcmdÚreturnc C s: t j| ddddd}|jdkr6|jr*|jS |jr6|jS dS )z3Run an arbitrary CLI command and return the resultszutf-8FT)ÚencodingÚshellÚcheckÚcapture_outputr z)completed process return code is non-zero)Ú
subprocessÚrunÚ
returncodeÚstdoutÚstderr)r Úcp© r ú/build/wlanpi-profiler-CSvHZ8/wlanpi-profiler-1.0.7~rc2/debian/wlanpi-profiler/opt/wlanpi-profiler/lib/python3.7/site-packages/profiler/helpers.pyÚrun_cli_cmd- s
r Ztcpdumpz --versionzRproblem checking tcpdump version. is tcpdump installed and functioning? exiting...ÚnetstatzRproblem checking netstat version. is netstat installed and functioning? exiting...é )Ú__version__)ÚCHANNELSÚCONFIG_FILEz/var/www/html/profiler)r c C sp | j r(| j dkrt j}| j dkr.t j}nt j}dddddiid|dd d
diddg|d
id}t j |¡ dS )z Configure and set logging levelsÚdebugÚwarningr FÚstandardÚformatz1%(asctime)s [%(levelname)s] %(name)s: %(message)sÚdefaultzlogging.StreamHandlerzext://sys.stdout)ÚlevelÚ formatterÚclassÚstreamÚ )Úhandlersr$ )ÚversionÚdisable_existing_loggersÚ
formattersr) ÚloggersN)ÚloggingÚDEBUGÚWARNINGÚINFOÚconfigÚ
dictConfig)ÚargsZ
logging_levelZdefault_loggingr r r Úsetup_loggerX s
r5 )Úvaluer c sJ t | d } dkr t|t fddt ¡ D r> S t|dS )zCheck if channel is validz%s is not a valid channel valuer c 3 s | ]} |kV qd S )Nr )Ú.0Zband)Úchannelr r ú <genexpr>{ s z check_channel.<locals>.<genexpr>N)ÚintÚ
ValueErrorÚanyr Úvalues)r6 Ú error_msgr )r8 r Ú
check_channelu s r? )Ússidr c C s t | dkrtd| | S )zCheck if SSID is validé z%s length is greater than 32)Úlenr; )r@ r r r Ú
check_ssid s rC c C sÒ t jt jdd} | jddddt jd | jdd td
d | jdd
dd | ¡ }|jddtdd | jdtdt dd | jdddddd |jdddddd | jd d!d"d#d$ | jd%d&ddd'd |jd(d)ddd*d | ¡ }|jd+d,ddt jd |jd-d.ddd/d | ¡ }|jd0d1ddt jd |jd2d3ddd4d | jd5d6ddt jd | jd7d8ddt jd | jd9d:ddt jd | jd;d<ddt jd | jd=d>ddd?d | jd@dAdBdCdD | jdEdFdGt
dH | S )Iz(Set default values and handle arg parserzdwlanpi-profiler is an 802.11 client capabilities profiler. Read the manual with: man wlanpi-profiler)Úformatter_classÚdescriptionz--pytestZpytestÚ
store_trueF)ÚdestÚactionr# Úhelpz-cr8 z)set the operating channel to broadcast on)rG ÚtyperI z-iÚ interfacez"set network interface for profiler)rG rI z-sr@ zset profiler SSID namez--configÚFILEz<customize path for configuration file (default: %(default)s))rJ Úmetavarr# rI z--files_pathÚPATHÚ
files_pathz/var/www/html/profilerzZcustomize default directory where analysis is saved on local system (default: %(default)s))rM rG r# rI z--hostname_ssidÚ
hostname_ssidz>use the WLAN Pi's hostname as SSID name (default: %(default)s)z --loggingzchange logging outputú?)r r )rI ÚnargsÚchoicesz--noprepZno_interface_prepz4disable interface preperation (default: %(default)s)z--noAPÚlisten_onlyz*enable Rx only mode (default: %(default)s)z--11rÚ
ft_enabledz--no11rÚft_disabledz/turn off 802.11r Fast Transition (FT) reportingz--11axÚ
he_enabledz--no11axÚhe_disabledz0turn off 802.11ax High Efficiency (HE) reportingz--no_sniffer_filterZno_sniffer_filterz--cleanÚcleanz--filesÚfilesz--yesÚyesz--oui_updateZ
oui_updatez?initiates update of OUI database (requires Internet connection)z--readZPCAPÚ
pcap_analysisz5read and analyze association request frames from pcap)rM rG rI z --versionz-Vr* )rH r* )ÚargparseÚArgumentParserÚRawDescriptionHelpFormatterÚadd_argumentÚSUPPRESSr? Úadd_mutually_exclusive_grouprC Ústrr r )ÚparserZ
ssid_groupZdot11r_groupZ
dot11ax_groupr r r Úsetup_parser sæ
re )Ú directoryÚacknowledgedr c C s t t ¡ d d ¡}ddlm} t|| d¡}| dd dd |D ¡¡ |rVn&t
d ¡ ¡ d
d
dks|t
d¡ yjxdt || ¡D ]R}|| || }| ¡ rÀtd
| | ¡ | ¡ rtd| t |¡ qW W n tk
r | d¡ Y nX d
S )zPurge files recursivelyr é )ÚPathÚ*zDelete the following files: %sz, c S s g | ]}t |qS r )rc )r7 Úxr r r ú
<listcomp> s z!files_cleanup.<locals>.<listcomp>zAre you sure? (y/n): Nr ÚyzRemoving file: zRemoving directory: zissue removing files)r. Ú getLoggerÚinspectÚstackÚpathlibri ÚlistÚrglobr ÚjoinÚinputÚlowerÚstripÚsysÚexitÚosÚlistdirÚis_fileÚprintÚunlinkÚis_dirÚshutilÚrmtreeÚOSErrorÚ exception)rf rg Úlogri ÚresultÚ_pathÚpathr r r Ú
files_cleanup s&