
    i                     v   d dl mZmZ d dlZd dlmZ ddlmZ d ZdZ	dZ
dZd	Zd Z G d
 dej                        Z G d dej                        Zdej"                  fdej$                  fd ej&                  e      fdefdej(                  fdej(                  fdej(                  fdej"                  fdej"                  fdej"                  fdej*                  fge_         G d dej                        Zdej"                  fdej$                  fd ej&                  e      fdej0                  fd ej&                  e      fdej2                  fdej2                  fd ej2                  fd!ej4                  fd"ej4                  fd#ej4                  fge_        ej6                  j9                  d$      Zd% Zd'd&Zy)(    )print_functionunicode_literalsN)wintypes   )_sharedo            c                   d    e Zd Zd ej                  ej                        fdej                  fgZ	y)SOCKET_ADDRESS
lpSockaddriSockaddrLengthN)
__name__
__module____qualname__ctypesPOINTERsharedsockaddrr   INT_fields_     Q/home/ubuntu/myenv/lib/python3.12/site-packages/copyparty/stolen/ifaddr/_win32.pyr   r      s,    	~v~~foo67	HLL)Hr   r   c                       e Zd Zy)IP_ADAPTER_UNICAST_ADDRESSNr   r   r   r   r   r   r   r          r   r   LengthFlagsNextAddressPrefixOriginSuffixOriginDadStateValidLifetimePreferredLifetimeLeaseLifetimeOnLinkPrefixLengthc                       e Zd Zy)IP_ADAPTER_ADDRESSESNr   r   r   r   r,   r,   +   r   r   r,   IfIndexAdapterNameFirstUnicastAddressFirstAnycastAddressFirstMulticastAddressFirstDnsServerAddress	DnsSuffixDescriptionFriendlyNameIphlpapic              #   |  K   g }	 |j                  |       |j                  sn|j                  d   }.|D ]  }t        j                  |j                  j
                        }|0d}t        |j                  |j                  j
                              |j                  }t        j                  |||         y w)Nr   z sockaddr_to_ip({}) returned None)
appendr"   r   sockaddr_to_ipr#   r   	Exceptionformatr*   IP)	nice_nameaddress	addressesiptnetwork_prefixs         r   enumerate_interfaces_of_adapterrC   A   s     
 I
!||,,q/	   7""7??#=#=>:2AAHHW__%?%?@AA 33iiNI667s   B:B<c           	         t        j                  d      }t        }|t        k(  rt        j                  |j
                        }t        j                  t        j                  t              t        j                  d      d t        j                  |      t        j                  |            }|t        k(  r|t        k7  rt        j                         g }t        j                        }	 |j                  |       |j                  sn|j                  d   }.g }|D ]  }|j                   j#                         }|j$                  }	|j&                  }
|j(                  rWt+        |j,                  |j(                  d         }t/        |      }|j                  t1        j2                  ||	||
             | s|j                  t1        j2                  ||	g |
              |S )Ni <  r   )index)r   ULONGERROR_BUFFER_OVERFLOWr   create_string_buffervalueiphlpapiGetAdaptersAddresses	AF_UNSPECbyrefNO_ERRORWinErrorr,   from_bufferr8   r"   r.   decoder4   r-   r/   rC   r5   listr   Adapter)include_unconfiguredaddressbuffersizeretvaladdressbufferaddress_infosaddress_inforesultadapter_infonamer=   rE   ipss               r   get_adaptersr^   W   s    !y1"F
)
)334E4K4KL..NN9%NN1LL'LL*+
 )
) oo M'33MBL
\*  #((+	  F% L ''..0 ,,	$$++1))<+K+KA+NC s)CMM&..y#UKL!MM&..y"EJKL  Mr   )F) 
__future__r   r   r   r    r   r   rN   rG   MAX_ADAPTER_NAME_LENGTHMAX_ADAPTER_DESCRIPTION_LENGTHMAX_ADAPTER_ADDRESS_LENGTHrL   	Structurer   r   rF   DWORDr   c_uintc_uint8r   r,   c_char_pc_void_p	c_wchar_pwindllLoadLibraryrJ   rC   r^   r   r   r   <module>rm      s   7     !$  	V%% 	!1!1 	
 x~~hnn^V^^678V]]#V]]#hnn%(..)hnn%6>>*'  #	6++ 	
 x~~^V^^012FOO$NFNN+EFGFOO,foo.foo.&""#F$$%V%%&!   ==$$Z07,-r   