AnonSec Shell
Server IP : 209.38.156.173  /  Your IP : 216.73.216.122   [ Reverse IP ]
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.1.2-1ubuntu2.22
Disable Function : NONE
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/cloudinit/distros/parsers/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /lib/python3/dist-packages/cloudinit/distros/parsers/__pycache__/ifconfig.cpython-310.pyc
o

x[h�#�@s�ddlZddlZddlZddlmZddlmZddlmZm	Z	m
Z
ddlmZm
Z
mZmZmZe�e�ZGdd�d�ZGdd	�d	�ZdS)
�N)�defaultdict)�	lru_cache)�IPv4Address�
IPv4Interface�
IPv6Interface)�Dict�List�Optional�Tuple�Unionc@sreZdZdZdd�Zedefdd��Zedefdd��Zedefd	d
��Z	edefdd��Z
edefd
d��ZdS)�Ifstatez�
    This class holds the parsed state of a BSD network interface.
    It is itself side-effect free.
    All methods with side-effects should be implemented on one of the
    ``BSDNetworking`` classes.
    cCsp||_d|_i|_i|_d|_g|_g|_g|_d|_d|_	g|_
d|_d|_d|_
d|_g|_i|_g|_dS)NrF)�name�index�inet�inet6�up�options�nd6�flags�mtu�metric�groups�description�media�status�mac�macs�vlan�members)�selfr
�r �D/usr/lib/python3/dist-packages/cloudinit/distros/parsers/ifconfig.py�__init__s$
zIfstate.__init__�returncCsd|jvp	d|jvS)N�loopback�lo)rr�rr r r!�is_loopback.�zIfstate.is_loopbackcCs0d|jvrdS|jgkr|jrd|jvrdSdS)N�egressT�EthernetF)rrr&r r r!�is_physical2s

zIfstate.is_physicalcC�
d|jvS)N�bridge�rr&r r r!�	is_bridge;�
zIfstate.is_bridgecCr,)N�laggr.r&r r r!�is_bond?r0zIfstate.is_bondcCsd|jvp	|jikS)Nr)rrr&r r r!�is_vlanCr(zIfstate.is_vlanN)�__name__�
__module__�__qualname__�__doc__r"�property�boolr'r+r/r2r3r r r r!rsrc
@s�eZdZdZdd�Ze�dedeeee	e
e	fffdd��Zdd	�Zd
e
deeeffdd�Zd
d�Zd
e
deeeffdd�Zd
e
defdd�ZdS)�Ifconfiga8
    A parser for BSD style ``ifconfig(8)`` output.
    For documentation here:
    - https://man.freebsd.org/ifconfig(8)
    - https://man.netbsd.org/ifconfig.8
    - https://man.openbsd.org/ifconfig.8
    All output is considered equally, and then massaged into a singular form:
    an ``Ifstate`` object.
    cCsi|_i|_dS�N)�_ifs_by_name�_ifs_by_macr&r r r!r"Ss
zIfconfig.__init__�textr#cCs�d}tt�}d}|��D�]�}|sq|ddvr9|d7}|��d}|�d�r-|dd�}t|�}||_||j|<|s<q|���	���}t
|�dkry|d�d�ry|�|�}|ikryt
�|d�|_|d	|_d
|vrp|d
|_d|vry|d|_|d�d�r�t�d
|d�}	|j�|	�|ddkr�t|d�|_|ddkr�||�d�dd�|_|d�d�s�|d�d�s�|d�d�r�t�d
|d�}
t
|
�dkr�|j|
d�d�7_|ddkr�|d|_|j�|d�||d�|�|ddk�r|j�|d�||d�|�|ddk�r"|j|dd�7_|ddk�r5||�d�dd�|_|ddk�rSt�d
|d�}t
|�dk�rS|d�d�|_|ddk�r_|d|_|ddk�rw|�|�}t
�|d�|j|d<|ddk�r�|� |�}t
�|d�|j!|d<|ddk�s�|ddk�r�|j"|d7_"|dd k�r�i|_#|d|j#d!<t$dt
|��D]}
||
d"k�r�||
d|j#d#<�q�qt%|�|_&i|j�|j&�S)$a
        Parse the ``ifconfig -a`` output ``text``, into a dict of ``Ifstate``
        objects, referenced by ``name`` *and* by ``mac`` address.

        This dict will always be the same, given the same input, so we can
        ``@lru_cache()`` it. n.b.: ``@lru_cache()`` takes only the
        ``__hash__()`` of the input (``text``), so it should be fairly quick,
        despite our giant inputs.

        @param text: The output of ``ifconfig -a``
        @returns: A dict of ``Ifstate``s, referenced by ``name`` and ``mac``
        rN)�	� ��:���zflags=rrrrz
capabilities=�<|>rzdescription:�zoptions=�ec_capabilities�
ec_enabled�,�ether�hwaddrzgroups:zmedia:z: rrrrzmember:z	laggport:zvlan:�idz
interface:�link)'r�list�
splitlines�split�endswithrrr<�lower�strip�len�
startswith�_parse_flags�copy�deepcopyrrrr�re�append�intrrrrrrrr�_parse_inetr�_parse_inet6rrr�range�dictr=)rr>�ifindex�
ifs_by_mac�dev�line�curif�toksr�capsr�nd6_opts�ip�ir r r!�parseWs�





���



�
zIfconfig.parsecCs|jSr;)r=r&r r r!r`�szIfconfig.ifs_by_macrdcCs�d}d|dvrt|d�}t|j�}nttt|dd���}td|d|f�}d|vr6||�d�d}|j�d�d}t|j�|||d�fS)N�/rA�r�%s/%s�	broadcast)�netmaskrm�	prefixlen)	r�strrnrrZr�with_prefixlenrOrg)rrdrmrgrnror r r!r[�s��zIfconfig._parse_inetcCs4tdt|��D]}||dkr||dSqdS)NrErorA)r]rS)rrdrhr r r!�_get_prefixlen�s
��zIfconfig._get_prefixlencCs�d}d|dvr-d}|d�d�\}}d|vr|�d�d}n|�|�}td||f�}n%d|dvrCt|d�}|d�d�d}n|�|�}td|d|f�}|sZ|jrZd}n|sa|jrad}t|j�||d�fS)N�%rAz
link-localrjrlz
site-local)ro�scope)rOrrr�
is_link_local�
is_site_localrprg)rrdrt�ip6�restrorgr r r!r\�s$



zIfconfig._parse_inet6cCs�t�d|d�}i}t|�dkrS|d�d�|d<d|dvr$d|d<nd|d<tdt|��D]#}||d	krBt||d�|d	<q/||d
krRt||d�|d
<q/|S)NrDrArHrrTFrErr)rXrOrSr]rZ)rrdr�ret�tr r r!rUs
�zIfconfig._parse_flagsN)r4r5r6r7r"rrprrrrrir`rMr
r^r[rrr\rUr r r r!r:Hs
(sr:)rV�loggingrX�collectionsr�	functoolsr�	ipaddressrrr�typingrrr	r
r�	getLoggerr4�LOGrr:r r r r!�<module>s
6

Anon7 - 2022
AnonSec Team