
    i                        S SK r S SK Jr  S SKJrJr  S SKJr  S rSr	Sr
SrSrS r " S S	\ R                  5      r " S
 S\ R                  5      rS\R"                  4S\R$                  4S\ R&                  " \5      4S\4S\ R(                  4S\ R(                  4S\ R(                  4S\R"                  4S\R"                  4S\R"                  4S\ R*                  4/\l         " S S\ R                  5      rS\R"                  4S\R$                  4S\ R&                  " \5      4S\ R0                  4S\ R&                  " \5      4S\ R2                  4S\ R2                  4S\ R2                  4S\ R4                  4S \ R4                  4S!\ R4                  4/\l        \ R6                  R9                  S"5      rS#\S$\S%\\R>                     4S& jr S)S'\!S%\\RD                     4S( jjr#g)*    N)wintypes)IterableListo            c                   l    \ rS rSrS\R
                  " \R                  5      4S\R                  4/r
Srg)SOCKET_ADDRESS$   
lpSockaddriSockaddrLength N)__name__
__module____qualname____firstlineno__ctypesPOINTERsharedsockaddrr   INT_fields___static_attributes__r       D/home/sebas/venvs/catt/lib/python3.13/site-packages/ifaddr/_win32.pyr   r   $   s+    v~~foo>?BSU]UaUaAbcHr   r   c                       \ rS rSrSrg)IP_ADAPTER_UNICAST_ADDRESS(   r   Nr   r   r   r   r   r   r   r   r   r   (       r   r   LengthFlagsNextAddressPrefixOriginSuffixOriginDadStateValidLifetimePreferredLifetimeLeaseLifetimeOnLinkPrefixLengthc                       \ rS rSrSrg)IP_ADAPTER_ADDRESSES;   r   Nr    r   r   r   r.   r.   ;   r!   r   r.   IfIndexAdapterNameFirstUnicastAddressFirstAnycastAddressFirstMulticastAddressFirstDnsServerAddress	DnsSuffixDescriptionFriendlyNameIphlpapi	nice_nameaddressreturnc              #   n  #    / n UR                  U5        UR                  (       d  OUR                  S   nM4  U Ht  n[        R                  " UR                  R
                  5      nUc   SUR                  R
                   S35       eUR                  n[        R                  " X4U 5      v   Mv     g 7f)Nr   zsockaddr_to_ip(z) returned None)appendr$   r   sockaddr_to_ipr%   r   r,   IP)r:   r;   	addressesipnetwork_prefixs        r   enumerate_interfaces_of_adapterrD   Q   s     
 I
!||,,q/	  ""7??#=#=>~\1K1K0LO\\~ 33iiI66	 s   B3B5include_unconfiguredc           
         [         R                  " S5      n[        nU[        :X  a  [        R                  " UR
                  5      n[        R                  [         R                  " [        5      [         R                  " S5      S [        R                  " U5      [        R                  " U5      5      nU[        :X  a  M  U[        :w  a  [        R                  " 5       e/ n[        R                  W5      n UR                  U5        UR                  (       d  OUR                  S   nM4  / nU H  nUR                   R#                  5       nUR$                  n	UR&                  n
UR(                  (       aT  [+        UR,                  UR(                  S   5      n[/        U5      nUR                  [0        R2                  " XXS95        M  U (       d  M  UR                  [0        R2                  " X/ U
S95        M     U$ )Ni <  r   )index)r   ULONGERROR_BUFFER_OVERFLOWr   create_string_buffervalueiphlpapiGetAdaptersAddresses	AF_UNSPECbyrefNO_ERRORWinErrorr.   from_bufferr>   r$   r1   decoder7   r0   r2   rD   r8   listr   Adapter)rE   addressbuffersizeretvaladdressbufferaddress_infosaddress_inforesultadapter_infonamer:   rG   ipss               r   get_adaptersr_   d   s    !y1"F
)
)334E4K4KL..NN9%NN1LL'LL*+
 )
) oo M'33MBL
\*  #((+	  F% ''..0 ,,	$$++1))<+K+KA+NC s)CMM&..#KL!!MM&.."EJK &  Mr   )F)$r   r   typingr   r   ifaddr._shared_sharedr   rP   rI   MAX_ADAPTER_NAME_LENGTHMAX_ADAPTER_DESCRIPTION_LENGTHMAX_ADAPTER_ADDRESS_LENGTHrN   	Structurer   r   rH   DWORDr   c_uintc_uint8r   r.   c_char_pc_void_p	c_wchar_pwindllLoadLibraryrL   strr@   rD   boolrU   r_   r   r   r   <module>rq      s  ,   !   !$  	dV%% d	!1!1 	
 x~~hnnV^^678V]]#V]]#hnn%(..)hnn%6>>*'  #	6++ 	
 x~~V^^012FOO$FNN+EFGFOO,foo.foo.&""#F$$%V%%&!   ==$$Z07777fii7&-t -8P -r   