????
Current Path : /opt/imunify360/venv/lib/python3.11/site-packages/im360/internals/__pycache__/ |
Current File : //opt/imunify360/venv/lib/python3.11/site-packages/im360/internals/__pycache__/geo.cpython-311.pyc |
� ��gy � � � d dl mZ d dlmZmZmZmZ d dlmZ d dl Z d dlmZ d dl mZ d dlmZ G d� d � � Zed � � � ZdS )� )�contextmanager)�IPv4Address�IPv4Network�IPv6Address�IPv6Network)�UnionN)�AddressNotFoundError)�CountryInfo)�IPc �z � e Zd Zd� Zdeeeeee f fd�Z deeeeee f fd�Zdeeeeee f fd�ZdS )�Readerc � � || _ d S )N)�_geoip2_reader)�self� geoip2_readers �H/opt/imunify360/venv/lib/python3.11/site-packages/im360/internals/geo.py�__init__zReader.__init__ s � �+����� �addressc �� � t j |� � }n# t $ r Y dS w xY w | j � t |j � � � � }n# t $ r Y dS w xY w|r|j ndS )z� Returns geo country information from max mind's db request :param address: ip or network address e.g. '4.4.4.4, 1.2.0.0/16, 2001:678:4c::/48' :return: maxmind's geo info N)r �adopt_to_ipvX_network� ValueErrorr �country�str�network_addressr )r r �ip�objs r �getz Reader.get s� � � ��)�'�2�2�B�B��� � � ��4�4� ���� ��%�-�-�c�"�2D�.E�.E�F�F�C�C��#� � � ��4�4� ���� "�+�s�{�{�t�+s � � %�%�,A � A$�#A$c �B � | � |� � }|r|j S dS )za :param address: valid ipv4 address :return: maxmind's id of the country N)r � geoname_id�r r �country_infos r �get_idz Reader.get_id- s+ � � �x�x��(�(��� +��*�*��tr c �B � | � |� � }|r|j S dS )ze :param address: valid ipv4 address :return: country code in ISO-3166 format N)r �iso_coder! s r �get_codezReader.get_code<