Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
wlanpi-profiler / opt / wlanpi-profiler / lib / python3.7 / site-packages / scapy / __pycache__ / interfaces.cpython-37.pyc
Size: Mime:
B

žD¬ù×÷ã@s4dZddlZddlZddlmZddlmZddlmZddl	m
Z
ddlmZddl
mZddlmmZddlZdd	lmZmZmZmZmZmZmZmZmZGd
d„deƒZGdd
„d
eƒZeee fZ!Gdd„deƒZ"e"ƒe_#Z$Z#dd„Z%dd„Z&dd„Z'dd„Z(dd„Z)dd„Z*dd„Z+d!dd „Z,dS)"z
Interfaces management
éN)Údefaultdict)Úconf)ÚWINDOWS)Úpretty_list)Úin6_isvalid)ÚUserDict)	ÚAnyÚDefaultDictÚDictÚListÚNoReturnÚOptionalÚTupleÚTypeÚUnionc@sTeZdZdZdZdZdZdd„Zdd„Zd	d
„Z	dd„Z
d
d„Zdd„Zdd„Z
dS)ÚInterfaceProviderÚUnknown)ZIndexÚNameZMACZIPv4ZIPv6éFcCst‚dS)zEReturns a dictionary of the loaded interfaces, by their
        name.N)ÚNotImplementedError)Úself©rú’/build/wlanpi-profiler-CSvHZ8/wlanpi-profiler-1.0.7~rc2/debian/wlanpi-profiler/opt/wlanpi-profiler/lib/python3.7/site-packages/scapy/interfaces.pyÚload,szInterfaceProvider.loadcCs| ¡S)z7Same than load() but for reloads. By default calls load)r)rrrrÚreload2szInterfaceProvider.reloadcCstjS)z4Return L2 socket used by interfaces of this provider)rZL2socket)rrrrÚl2socket7szInterfaceProvider.l2socketcCstjS)z:Return L2listen socket used by interfaces of this provider)rZL2listen)rrrrÚl2listen<szInterfaceProvider.l2listencCstjS)z4Return L3 socket used by interfaces of this provider)rZL3socket)rrrrÚl3socketAszInterfaceProvider.l3socketcCst|jds|jdo|jƒS)z,Returns whether an interface is valid or notéé)ÚboolÚipsÚmac)rÚdevrrrÚ	_is_validFszInterfaceProvider._is_validcKsV|j}| dd¡}|r,tjr,|r,tj |¡}t|jƒ}||j|pBd|jd|jdfS)a)Returns the elements used by show()

        If a tuple is returned, this consist of the strings that will be
        inlined along with the interface.
        If a list of tuples is returned, they will be appended one above the
        other and should all be part of a single interface.
        Úresolve_macTÚrr)	r"ÚgetrZmanufdbZ_resolve_MACÚstrÚindexÚdescriptionr!)rr#Úkwargsr"r%r)rrrÚ_formatKs
zInterfaceProvider._formatN)Ú__name__Ú
__module__Ú__qualname__ÚnameÚheadersÚheader_sortÚlibpcaprrrrrr$r,rrrrr&src@sveZdZddd„Zdd„Zdd„Zdd	„Zd
d„Zdd
„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„ZdS)ÚNetworkInterfaceNcCsP||_d|_d|_d|_d|_d|_ttƒ|_d|_	d|_
|dk	rL| |¡dS)Nr&éÿÿÿÿF)Úproviderr0r*Únetwork_namer)ÚiprÚlistr!r"ÚdummyÚupdate)rr6ÚdatarrrÚ__init__`s
zNetworkInterface.__init__cCsÔ| dd¡|_| dd¡|_| dd¡|_| dd¡|_| dd¡|_| dd¡|_| d	d¡|_| d
d¡|_x>| dg¡D].}t	|ƒrœ|j
d
 |¡q~|j
d |¡q~W|j
drÐ|jsÐ|j
dd|_dS)zzUpdate info about a network interface according
        to a given dictionary. Such data is provided by providers
        r0r&r*r7r)rr8r"Úflagsr:Fr!rrN)r'r0r*r7r)r8r"r>r:rr!Úappend)rr<r8rrrr;qszNetworkInterface.updatecCs8t|tƒr||j|j|jgkSt|tƒr4|j|jkSdS)NF)Ú
isinstancer(r0r7r*r4Ú__dict__)rÚotherrrrÚ__eq__Šs


zNetworkInterface.__eq__cCs| |¡S)N)rC)rrBrrrÚ__ne__’szNetworkInterface.__ne__cCs
t|jƒS)N)Úhashr7)rrrrÚ__hash__–szNetworkInterface.__hash__cCs|jr
dS|j |¡S)NF)r:r6r$)rrrrÚis_validšszNetworkInterface.is_validcCs
|j ¡S)N)r6r)rrrrr szNetworkInterface.l2socketcCs
|j ¡S)N)r6r)rrrrr¤szNetworkInterface.l2listencCs
|j ¡S)N)r6r)rrrrr¨szNetworkInterface.l3socketcCs$d|jj|j|jrdp|jpdfS)Nz<%s %s [%s]>r:r&)Ú	__class__r-r*r:r>)rrrrÚ__repr__¬szNetworkInterface.__repr__cCs|jS)N)r7)rrrrÚ__str__²szNetworkInterface.__str__cCs
|j|S)N)r7)rrBrrrÚ__add__¶szNetworkInterface.__add__cCs
||jS)N)r7)rrBrrrÚ__radd__ºszNetworkInterface.__radd__)N)r-r.r/r=r;rCrDrFrGrrrrIrJrKrLrrrrr4_s
r4c@sreZdZdZdd„Zdd„Zdd„Zdd	„Zd
d„Zdd
„Z	dd„Z
dd„Zdd„Zdd„Z
ddd„Zdd„ZdS)ÚNetworkInterfaceDictzDStore information about network interfaces and convert between namescCsi|_t |¡dS)N)Ú	providersrr=)rrrrr=ÅszNetworkInterfaceDict.__init__cCsBx<t |¡D].\}}||jkr0|jr:||j|<q||j|<qWdS)N)ÚsixÚ	iteritemsr<r3)rZdatÚprovÚifnameÚifacerrrÚ_loadÊs

zNetworkInterfaceDict._loadcCs|ƒ}||j|<dS)N)rN)rr6rQrrrÚregister_provider×sz&NetworkInterfaceDict.register_providercCstjstdƒ‚tƒt_dS)z#
        Reload conf.iface
        z#Error: conf.route isn't populated !N)rÚrouteÚ
ValueErrorÚget_working_ifrS)rrrrÚload_confifaceÜsz#NetworkInterfaceDict.load_confifacecCs0| ¡x"|j ¡D]}| | ¡|¡qWdS)N)ÚclearrNÚvaluesrTr)rrQrrrÚ
_reload_provsæsz"NetworkInterfaceDict._reload_provscCs| ¡tjr| ¡dS)N)r\rrVrY)rrrrrìszNetworkInterfaceDict.reloadc	sFyt‡fdd„t |¡DƒƒSttfk
r@tdˆƒ‚YnXdS)zNReturn the first network device name for a given
        device name.
        c3s&|]}|jˆks|jˆkr|VqdS)N)r0r*)Ú.0rS)r0rrú	<genexpr>øsz5NetworkInterfaceDict.dev_from_name.<locals>.<genexpr>zUnknown network interface %rN)ÚnextrOÚ
itervaluesÚ
StopIterationÚRuntimeErrorrW)rr0r)r0rÚ
dev_from_nameòsz"NetworkInterfaceDict.dev_from_namec	sFyt‡fdd„t |¡DƒƒSttfk
r@tdˆƒ‚YnXdS)z1Return interface for a given network device name.c3s|]}|jˆkr|VqdS)N)r7)r]rS)r7rrr^sz<NetworkInterfaceDict.dev_from_networkname.<locals>.<genexpr>zUnknown network interface %rN)r_rOr`rarbrW)rr7r)r7rÚdev_from_networknameýsz)NetworkInterfaceDict.dev_from_networknamec	sfy$tˆƒ‰t‡fdd„t |¡DƒƒSttfk
r`tˆƒdkrP| tj	¡St
dˆƒ‚YnXdS)z*Return interface name from interface indexc3s|]}|jˆkr|VqdS)N)r))r]rS)Úif_indexrrr^
sz6NetworkInterfaceDict.dev_from_index.<locals>.<genexpr>Ú1z"Unknown network interface index %rN)Úintr_rOr`rarbr(rdrÚ
loopback_namerW)rrer)rerÚdev_from_indexsz#NetworkInterfaceDict.dev_from_indexcCsv|||ddddddgdt ¡dddœ}tr`dd	lm}m}Gd
d„d|ƒ}||ƒ|ƒ|j|<nttƒ|ƒ|j|<dS)
z,Internal function used for a testing purposeiüÿÿTz00:00:00:00:00:00rz	127.0.0.1z::z{%s})r0r*r7r)r:r"r>r!ZguidZipv4_metricZipv6_metric)ÚNetworkInterface_WinÚWindowsInterfacesProviderc@seZdZdZdS)z6NetworkInterfaceDict._add_fake_iface.<locals>.FakeProvZfakeN)r-r.r/r0rrrrÚFakeProv*srlN)	ÚuuidÚuuid1rZscapy.arch.windowsrjrkr<r4r)rrRr<rjrkrlrrrÚ_add_fake_ifaces$
z$NetworkInterfaceDict._add_fake_ifaceTFc
Ks´ttƒ}xPt|jƒD]B}|j|}|s0| ¡s0q|j}|| |jf|j|f|Ž¡qWd}x0|D](}	|t	||	d|	j
g|	jdd7}qdW|dd…}|r¬t|ƒdS|SdS)zÜ
        Print list of available network interfaces in human readable form

        :param print_result: print the results if True, else return it
        :param hidden: if True, also displays invalid interfaces
        r&)ZSource)ZsortByÚ
Nr5)
rr9Úsortedr<rGr6r?r0r,rr1r2Úprint)
rÚprint_resultÚhiddenr+ÚresZ
iface_namer#rQÚoutputr6rrrÚshow4s(


zNetworkInterfaceDict.showcCs|jddS)NF)rs)rw)rrrrrISszNetworkInterfaceDict.__repr__N)TF)r-r.r/Ú__doc__r=rTrUrYr\rrcrdrirorwrIrrrrrMÂs



rMcCsttj ¡ƒS)z Return a list of interface names)r9rÚifacesÚkeysrrrrÚget_if_list[sr{cCshtjjdd…}|jdd„ddd„|Dƒ}x.t |tj ¡¡D]}t|ƒ}| 	¡rB|SqBWttj
ƒS)zReturn an interface that worksNcSs|dS)Nrr)ÚxrrrÚ<lambda>góz get_working_if.<locals>.<lambda>)Úkeycss|]}|dVqdS)éNr)r]r|rrrr^hsz!get_working_if.<locals>.<genexpr>)rrVÚroutesÚsortÚ	itertoolsÚchainryr[Ú
resolve_ifacerGrh)rryrRrSrrrrXasrXcCsdd„tj ¡DƒS)zReturn all interfaces that workcSsg|]}| ¡r|‘qSr)rG)r]rSrrrú
<listcomp>vsz&get_working_ifaces.<locals>.<listcomp>)rryr[rrrrÚget_working_ifacesssr‡cCstj |¡S)z6Return Scapy device name for given network device name)rryrd)r7rrrrdysrdcCstj |¡S)z,Return interface for a given interface index)rryri)rerrrrisricCsft|tƒr|Sytj |¡Stk
rLyt|ƒStk
rFYnXYnXttƒ|||ddœdS)z6
    Resolve an interface name into the interface
    T)r0r*r7r:)r<)r@r4rryrcrWrdr)r#rrrr……s
r…cCs
t|ƒjS)zP
    Resolves the device network name of a device or Scapy NetworkInterface
    )r…r7)r#rrrr7Ÿsr7TcCstj |¡S)z*Print list of available network interfaces)rryrw)r%rrrÚshow_interfaces§srˆ)T)-rxrƒrmÚcollectionsrZscapy.configrZscapy.constsrZscapy.utilsrZscapy.utils6rZscapy.modules.six.movesrZscapy.modules.sixÚmodulesrOZscapyZscapy.compatrr	r
rrr
rrrÚobjectrr4r(Z_GlobInterfaceTyperMryZIFACESr{rXr‡rdrir…r7rˆrrrrÚ<module>	s2,
9`