
    8j                        d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dl	m
Z  G d dej                  Zd ej        e          fdej        fdej        fd ej        ej                  fd	 ej        ej                  fge_         ej        ej                             e j                    d          d
k    rdnd          d          Zddedeej                 fdZdS )    N)IterableOptionalc                       e Zd ZdS )ifaddrsN)__name__
__module____qualname__     C/home/user/adhan/venv/lib/python3.11/site-packages/ifaddr/_posix.pyr   r   #   s        Dr   r   ifa_nextifa_name	ifa_flagsifa_addrifa_netmaskSunOSsocketcT)	use_errnoFinclude_unconfiguredreturnc                     t          j        t                                x}}t                              t          j        |                    }|dk    r5t          j                    }t          |t          j	        |                    t          j                    dt          dt          t          j                 dd ffd}|r|d         j                            d          }t          j        |d         j                  }|r,|d         j        rF|d         j        d         j        s.|d         j        d         j        |d         j        d         _        t          j        |d         j                  }t-          |t.                    r<t          |d                   }	t          j        t3          j        |	                    }
nF|J d|d         j         d	            t          d
|z             }	t3          j        |	          j        }
t          j        ||
|          } |||           n| r ||d            |d         j        }|t                              |                                           S )Nr   adapter_nameipr   c                     | vrJd }	 t          j        |           }n# t          t          f$ r Y nw xY wt	          j        | | g |          | <   |"|          j                            |           d S d S )N)index)r   if_nametoindexOSErrorAttributeErrorsharedAdapteripsappend)r   r   r   r"   s      r   add_ipzget_adapters.<locals>.add_ip<   s    s""E -l;;^,    &|\2UZ [ [ [C>!((,,,,, >s    22zUTF-8)encodingzsockaddr_to_ip(z) returned Nonez0.0.0.0/) ctypesPOINTERr   libc
getifaddrsbyref	get_errnor   osstrerrorcollectionsOrderedDictstrr   r    IPr   decodesockaddr_to_ipr   r   
sa_familiy
isinstancetupleipv6_prefixlength	ipaddressIPv6AddressIPv4Network	prefixlenr   freeifaddrsvalues)r   addr0addrretvalenor$   nameip_addrnetmask
netmaskStrr;   r   r"   s               @r   get_adaptersrF   2   sa   *6>'**,,,ED__V\$//00F{{  c2;s++,,,

!
#
#C-S -hvy&9 -d - - - - - -   Aw&&&88'Q(899 	#Aw" S47+>q+A+L S48G4DQ4G4RQ#A&1+DG,?@@G'5)) H __
"4Y5J:5V5VWW		**,bd1g>Q,b,b,b*** g!566
%1*==G	7It44BF4# #tT"""Aw'   * 	U::<<r   )F)r,   ctypes.utilr&   r8   r.   r   typingr   r   ifaddr._shared_sharedr    	Structurer   r'   c_char_pc_uintsockaddr_fields_CDLLutilfind_libraryunamer(   boolr!   rF   r
   r   r   <module>rU      sp  , 
			              % % % % % % % %      
	 	 	 	 	f 	 	 	
 (()!&- 001NFN6?334  v{6;++

18P8PHHVYZZfjkkk. .t .8P . . . . . .r   