
    i                        S SK r S SKrS SKrS SKrS SKrS SKJrJr  S SK	J
r   " S S\R                  5      rS\R                  " \5      4S\R                  4S\R                   4S\R                  " \R"                  5      4S	\R                  " \R"                  5      4/\l        \R&                  " \R(                  R+                  \ R,                  " 5       S    S
:X  a  SOS5      SS9rSS\S\\R2                     4S jjrg)    N)IterableOptionalc                       \ rS rSrSrg)ifaddrs#    N)__name__
__module____qualname____firstlineno____static_attributes__r       D/home/sebas/venvs/catt/lib/python3.13/site-packages/ifaddr/_posix.pyr   r   #   s    r   r   ifa_nextifa_name	ifa_flagsifa_addrifa_netmaskSunOSsocketcT)	use_errnoinclude_unconfiguredreturnc                 >  ^ [         R                  " [        5      " 5       =p[        R	                  [         R
                  " U5      5      nUS:w  a5  [         R                  " 5       n[        U[        R                  " U5      5      e[        R                  " 5       mS[        S[        [        R                     SS 4U4S jjnU(       Ga  US   R                   R#                  SS9n[        R$                  " US   R&                  5      nU(       Ga@  US   R(                  (       aR  US   R(                  S   R*                  (       d1  US   R&                  S   R*                  US   R(                  S   l        [        R$                  " US   R(                  5      n[-        U[.        5      (       a9  [        US   5      n	[        R0                  " [2        R4                  " U	5      5      n
OIUc   SUS   R(                   S	35       e[        S
U-   5      n	[2        R6                  " U	5      R8                  n
[        R                  " XzU5      nU" Xk5        OU (       a	  U" US 5        US   R:                  nU(       a  GM  [        R=                  U5        TR?                  5       $ )Nr   adapter_nameipr   c                    > U T;  a2  S n [         R                  " U 5      n[        R
                  " X / US9TU '   Ub  TU    R                  R                  U5        g g ! [        [        4 a     NNf = f)N)index)r   if_nametoindexOSErrorAttributeErrorsharedAdapteripsappend)r   r   r   r%   s      r   add_ipget_adapters.<locals>.add_ip<   s}    s"E --l; !'|2UZ [C>!!((,  ^, s   A A0/A0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_adaptersrJ   2   s
   >>'*,,E__V\\$/0F{ c2;;s+,,

!
!
#C-S -hvyy&9 -d - Aw&&&8''Q(8(89Aw""47+>+>q+A+L+L48G4D4DQ4G4R4RQ##A&1++DG,?,?@G'5)) _
"44Y5J5J:5VW	*bod1g>Q>Q=RRa,bb* g!56
%11*=GG	7t4B4#tT"Aw' $* 	U::<r   )F)r0   ctypes.utilr*   r<   r2   r   typingr   r   ifaddr._shared_sharedr#   	Structurer   r+   c_char_pc_uintsockaddr_fields_CDLLutilfind_libraryunamer,   boolr$   rJ   r   r   r   <module>rY      s   , 
     % 
	f 	
 ()!&-- 01FNN6??34  {{6;;++
18PHVYZfjk.t .8P .r   