| Current File : //opt/imunify360/venv/lib/python3.11/site-packages/im360/utils/__pycache__/net.cpython-311.pyc |
�
�*(i! � � � d dl Z d dlZd dlZd dlmZ d dlmZmZmZm Z m
Z
mZmZ d dl
mZmZmZmZ d dlZd dlmZ d dlmZmZ e j e� � Z ej dej � � Zd\ ZZZ d \ Z!Z"ee ef Z#d
Z$ddee fd�Z%d
eeee
f fd�Z&d� Z' ed�� � d� � � Z(de)fd�Z*d� Z+deee
f fd�Z,dee ef d
ee)e)e)f fd�Z-de)de)de)d
e#fd�Z.de/d
ede ef fd�Z0dS ) � N)� lru_cache)�
IPV4LENGTH�
IPV6LENGTH�IPv4Address�IPv4Network�IPv6Address�IPv6Network�
ip_network)�Iterable�Optional�Tuple�Union)�get_kernel_module_parameter)�IP� IPVersions ^nameserver ([\w.:]+))�tcp�udp�all)�in�outz/etc/resolv.conf�
ip_versionc # � K � t t d� � 5 }|� � � }d d d � � n# 1 swxY w Y n# t $ r g cY S w xY wt � |� � D ]K}|� d� � }t j |� � r | �t j |� � | k s| �|V � �Ld S )N�rb�ascii)
�open�RESOLV_CONF_FILE�read�OSError�DNS_IP_TEMPLATE�findall�decoder �is_valid_ip�type_of)r �f�content�ips �D/opt/imunify360/venv/lib/python3.11/site-packages/im360/utils/net.py�local_dns_from_resolv_confr( ! s � � � ��
�"�D�
)�
)� �Q��f�f�h�h�G� � � � � � � � � � � ���� � � � ���� � � �� � � ����� �%�%�g�.�.� � ��
�Y�Y�w�
�
��
�>�"��� ��&�2�:�b�>�>�Z�+G�+G��#������
� s. �A �:�A �>�A �>�A �A�A�returnc # �H K � t j � � � � � D ]y} | D ]t}|j t j k rt
|j � � V � �.|j t j k r1t |j �
dd�� � d � � V � �u�zdS )z8Return a list of IP address assigned to local interfaces�%� )�maxsplitr N)�psutil�net_if_addrs�values�family�socket�AF_INETr �address�AF_INET6r �split)�ipsr&