CasperSecurity

Current Path : /lib/python3/dist-packages/cloudinit/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/__pycache__/netinfo.cpython-310.pyc

o

쑛hF`�@s"ddlZddlZddlZddlmZmZddlmZddlmZm	Z	m
Z
ddlmZm
Z
mZddlmZddlmZe�e�Zggdd	d
�ZGdd�de
�Zd
d�Zejddd�dd��Zdd�Zdd�Z	d(deeeeefffdd�Zdd�Zdd�Z dd �Z!d!d"�Z"d#d$�Z#d)d&d'�Z$dS)*�N)�copy�deepcopy)�IPv4Network)�Dict�List�	TypedDict)�	lifecycle�subp�util)�net_prefix_to_ipv4_mask)�SimpleTable�F��ipv4�ipv6�hwaddr�upc@s6eZdZUeed<eed<eeed<eeed<dS)�	InterfacerrrrN)�__name__�
__module__�__qualname__�bool�__annotations__�strr�dict�rr�3/usr/lib/python3/dist-packages/cloudinit/netinfo.pyr,s

rc	CsJt�|�}i}|D]�}d|vr|dng}|�d�dkr |dnd}|td|vo+d|v�ggd�}|�d	g�D]d}|�d
�dkrmd|vrPttd
|d���j�nd}|�dd�||�dd�|�dd�d�}	|d�|	�q7|d
dkr�|�dd�}
|
r�|�d�s�|
�d|�dd���}
|
|�dd�d�}	|d�|	�q7|||d<q	|S)a&Get network device dicts from ip route and ip link info.

    ipaddr_json: Output string from 'ip --json addr' command.

    Returns a dict of device info keyed by network device name containing
    device configuration values.

    Raises json.JSONDecodeError if json could not be decoded
    �flags�	link_type�ether�addressr
�UP�LOWER_UP)rrrr�	addr_info�family�inet�	prefixlenz0.0.0.0/�local�	broadcast�scope)�ip�mask�bcastr)r�inet6�/�@)r*�scope6r�ifname)�json�loads�getrrr�netmask�append)�ipaddr_json�ipaddr_data�devs�devrr �dev_info�addrr+�parsed_addrr*rrr�_netdev_info_iproute_json3sB

���


�
��r>z22.1zqRequired by old iproute2 versions that don't support ip json output. Consider upgrading to a more recent version.)�deprecated_version�
extra_messagecCs�i}d}t|���D]�\}}t�d|�}|r<|�d����d�d}|�d��d�}ggdtd	|vo5d
|v�d�||<q
d|vr\t�d
|�}|sPt�	d||�q
||d�
|���q
d|vr�t�d|�}|spt�	d||�q
|��}|�d�}|�
d�\}	}
}|s�d}||d�
|	|dr�|dndt|�|dd��q
d|vr�t�d|�}|s�t�	d||�q
|�d�dkr�|�d�||d<q
d||d<q
q
|S)z�
    @param ipaddr_out: Output string from 'ip addr show' command.

    @returns: A dict of device info keyed by network device name containing
              device configuration values.
    @raise: TypeError if ipaddr_out isn't a string.
    Nz.^\d+:\s(?P<dev>[^:]+):\s+<(?P<flags>\S+)>\s+.*r:�@rr�,r
r!r"rr-z?\s+inet6\s(?P<ip>\S+)(\s(peer\s\S+))?\sscope\s(?P<scope6>\S+).*z*Could not parse ip addr show: (line:%d) %srr%zd\s+inet\s(?P<cidr4>\S+)(\smetric\s(?P<metric>\d+))?(\sbrd\s(?P<bcast>\S+))?\sscope\s(?P<scope>\S+).*�cidr4r.�32rr,r))r*r,r+r)�linkz-\s+link/(?P<link_type>\S+)\s(?P<hwaddr>\S+).*rrr)�	enumerate�
splitlines�re�match�group�lower�splitr�LOG�warningr6�	groupdict�pop�	partitionr)�
ipaddr_outr9�dev_name�num�line�mrrIrCr<�_�prefixrrr�_netdev_info_iprouteisv
�����
����rYc
Csfi}|��D�])}|sq|ddvr-|��d}|�d�r#|dd�}||vr-tt�||<|������}t|�dkrIt�	d|d�rId||d<t
t|��D]�}||d	krq||d�d
�\}}||d�|t|�d��qO||d
kr�||d||ddd<qO||dkr�||d||d<qO||dkr�||ddkr�||d�d||di�qO||d�d||di�qO||dkr�||dddd
||d}|||ddd<qO||�
d�r�||�d�||ddd<qO||dk�r/t�d||d�}	|	�r!|	�d�||ddd<qO||d||ddd<qOq|S)Nr��	� �:����zflags=[x\d]+<up.*>Trr%r.r)r*r+r(r,zaddress:rr-�addr:rr*�r&�scope:r0�scopeid�	.*<(\S+)>)rGrL�endswithr�DEFAULT_NETDEV_INFOrK�strip�lenrH�search�ranger6r�
startswith�lstriprIrJ)
�
ifconfig_datar9rU�curdev�toks�i�network�net_bits�addr6�resrrr�_netdev_info_ifconfig_netbsd�sR
�  $ ��rucCsi}|��D�]}}|sq|ddvr-|��d}|�d�r#|dd�}||vr-tt�||<|������}|ddkrBd||d<nt|�dkrVt�	d|d�rVd||d<t
t|��D�]&}||d	krx||d
�d||d�d�i�q\||�
d
�r�||�d
�||d
dd<q\||dkr�||d||d
dd<q\||�
d�r�||�d�||d
dd<q\||dkr�||d||d
dd<q\||dks�||dkr�||d||d<q\||dk�r||ddk�r||d�d||di�q\||d�d||di�q\||dk�r;||dddd||d}|||ddd<q\||�
d��rS||�d�||ddd<q\||dk�r�t�d||d�}|�ru|�d�||ddd<q\||d||ddd<q\q|S)NrrZr]r^rTr_z
flags=\d+<up,r%rr*r`zbcast:r,r(zmask:r+r5rrr-rrar&r.rbr0rcrd)rGrLrerrfrKrgrhrHrirjr6rlrkrIrJ)rmr9rUrnrorprsrtrrr�_netdev_info_ifconfig�s`
�    $ �� rv�returncs�i}t��rtjddgddgd�\}}t|�}nHt�d�rDzt�gd��\}}t|�}Wn3tjyCt�gd��\}}t|�}Ynwt�d�r[tjddgddgd�\}}t|�}nt	�
d	�|d
krf|Sttt
f�d��fdd
�	��||d�|S)afreturn the instance's interfaces and interface data

    includes, interface name, link state, hardware address, and lists of ipv4
    and ipv6 addresses

    example output:
    {
    'lo': {
        'up': True,
        'hwaddr': '',
        'ipv4': [
        {
            'bcast': '',
            'ip': '127.0.0.1',
            'mask': '255.0.0.0',
            'scope': 'host',
        }],
        'ipv6': [{'ip': '::1/128', 'scope6': 'host'}],
    },
    'lxdbr0': {
        'up': True
        'hwaddr': '00:16:3e:fa:84:30',
        'ipv4': [{
            'bcast': '',
            'ip': '10.161.80.1',
            'mask': '255.255.255.0',
            'scope': 'global',
        }],
        'ipv6': [
            {'ip': 'fd42:80e2:4695:1e96::1/64', 'scope6': 'global'},
            {'ip': 'fe80::216:3eff:fefa:8430/64', 'scope6': 'link'},
        ]
    },
    }

    �ifconfigz-arr_��rcsr*)r*z--jsonr<)r*r<�showz>Could not print networks: missing 'ip' and 'ifconfig' commandsr
�r
�cslt|t�r
|��}nt|ttf�rt|�}ntd��|D]\}}||vr)|||<qt|��r3�||�qdS)zQRecursively replace 'empty_vals' in data (dict, tuple, list)
        with new_valzUnexpected input to fillN)�
isinstancer�items�tuple�listrF�	TypeError)�data�new_val�
empty_vals�myiter�key�val��fill�
recurse_typesrrr�gs





��znetdev_info.<locals>.fill)r�N)r
r|)r
�	is_NetBSDr	ru�whichr>�ProcessExecutionErrorrYrvrMrNrr�r�)�emptyr9�	ifcfg_out�_errrRrr�r�netdev_info%s0'

�

�
r�cCs�i}g|d<g|d<|��}ddddddd�}|D]�}t|�}|s"q|��}dg}|ddkr8d|d	<d|d
<n/d|dvrH|d�d�\}}	n|d}d}	|�d
�t|	�|d
<||d	<t|	�|d
<d|d<tt|��D]2}
||
dkr�||
d|d<|�dd�||
dkr�||
d|d<||
dkr�||
d|d<qmd�|�|d<|d�|�qzt	j	gd�ddgd�\}}Wnt	j
y�Y|Sw|��}
|
D]x}i}|s�q�|��}|ddkr�d|d	<d|d<n|d|d	<d|d<d|d<tt|��D]B}
||
dk�r||
d|d<d|d<||
dk�r"||
d|d<||
dk�r1||
d|d<||
dk�r@|dd|d<q�|d�|�q�|S)aP
    Get network route dicts from ip route info.

    @param iproute_data: Output string from ip route command.

    @returns: A dict containing ipv4 and ipv6 route entries as lists. Each
              item in the list is a route dictionary representing destination,
              gateway, flags, genmask and interface information.
    rrr
)�destinationr�gateway�genmask�iface�metric�Ur�default�0.0.0.0r�r�r.rD�Hr��viar_�Gr:r�r�r)r*z	--onelinez-6�router��table�allryz::/0�UG�::�expires�e)rGrrLr6rrjrh�insert�joinr	r�)�iproute_data�routes�entries�default_route_entryrU�entryrorr<�cidrrp�
iproute_data6�_err6�entries6rrr�_netdev_route_info_iproute{s��

���
�r�c	
Cs
i}g|d<g|d<|��}|D]j}|sq|��}t|�dks=|ddks=|ddks=|ddks=|ddks=|dd	kr>qt|�d
krX|�d�|�d�|d|d
<d|d<|d|d|d|d|d|d|d|d
d�}|d�|�qztjgd�ddgd�\}}Wntjy�Y|Sw|��}|D]f}|s�q�|��}t|�d
ks�|ddks�|ddks�|ddks�|ddks�|ddkr�q�|d|d|d|d|d|d|dd�}|ddkr�q�|d�d�r�t�dd|d�|d<|d�|�q�|S)Nrr�r�Kernel�Destination�Internet�	Internet6�Routing��-��r_ra��)r�r�r�rr��ref�user�)�netstatz-Ar-�--route�	--numericry�Proto�Active)r�r�rr�r�r�r�r��lor�z/128z\/128$r
)	rGrLrhr6r	r�rerH�sub)	�
route_datar�r�rUror��route_data6r�r�rrr�_netdev_route_info_netstat�s�	

�
�"��

�r�cCsji}t�d�rt�gd��\}}t|�}|St�d�r.tjgd�ddgd�\}}t|�}|St�d�|S)	Nr*)r*z-or�r�r�)r�r�r�z--extendrr_ryz;Could not print routes: missing 'ip' and 'netstat' commands)r	r�r�r�rMrN)r��iproute_outr��	route_outrrr�
route_info(s

�
���r�cCsvg}d}zt|d�}Wn"ty-}z|�t�djt|�d�dd��WYd}~n�d}~ww|s2dSgd�}t|�}t|�	��D]W\}}|�
d	�}|D]}	|�||d
|	d|	d|	�
d
|�|df�qK|�
d�}
|
D]}	|�||d
|	d||	�
d|�|df�ql|s�|
s�|�||d
||||df�q@|��}t
t|��t
d��}t�dd|�}
|�|
|g�d�|�dS)N�.)r�z Net device info failed ({error})��error�!�P�
)�Device�Up�Address�Mask�Scopez
Hw-Addressrrr*r+r)rrr0�r�zNet device info�+)r��	Exceptionr6r
�center�formatrr�sortedrr4�add_row�
get_stringrh�maxrG�extendr�)�linesr��netdevr��fields�tblr:r��
ipv4_addrsr<�
ipv6_addrs�netdev_s�max_len�headerrrr�netdev_pformat;sf����	

��

��
��r�c
Cs,g}zt�}Wn*ty1}z|�t�djt|�d�dd��t�td|�WYd}~n�d}~ww|�	d�r�gd�}t
|�}t|�	d��D];\}}t|�}z|�||d|�	d	d
�|d|d|d
g�WqFt
y�}zt�td|�WYd}~qFd}~ww|��}tt|��td��}	t�dd|	�}
|�|
|g�|�	d��rgd�}t
|�}t|�	d��D]?\}}t|�}|ddkr�q�z|�||d|�	d	d�|d|d
g�Wq�t
y�}zt�td|�WYd}~q�d}~ww|��}tt|��td��}	t�dd|	�}
|�|
|g�d�|�dS)NzRoute info failed ({error})r�r�r�zRoute info failed: %sr)�Router��Gateway�Genmaskr�Flagsr�r�r�r�r�rzRoute info formatting error: %sr�zRoute IPv4 infor�r)r�r�r�rr�r�r�zRoute IPv6 infor�)r�r�r6r
r�r�r�logexcrMr4rrFr��KeyErrorr�rhr�rGr�r�)
r�r�r��	fields_v4�tbl_v4�n�r�route_id�route_sr�r��	fields_v6�tbl_v6rrr�
route_pformatrsx
����

��
��
��	��r��	ci-info: cCszg}t���}|r|D]}|�d||f�qn|�|�t���}|r3|D]}|�d||f�q&n|�|�d�|�S)Nz%s%sr�)r�rGr6r�r�r�)rXr��netdev_linesrU�route_linesrrr�
debug_info�s
�

�

r�)r
)r�)%r2�loggingrHrr�	ipaddressr�typingrrr�	cloudinitrr	r
�cloudinit.net.network_stater�cloudinit.simpletabler�	getLoggerrrMrfrr>�deprecate_callrYrurvrr�r�r�r�r�r�r�rrrr�<module>s<

6�
N0:�
�VXU7I
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY