
    g"                        % S SK r S SKr\ R                  S:X  a  S SKJr  S SKrSrS SKr \	r
\R                  R                  S5      (       a  S SKrS SKrS SKrSrOSrS r " S S	5      r\(       a   " S
 S\R*                  5      rO
 " S S5      r " S S5      r\\S'   \(       a
  \(       a  \rO\rS rgg! \ a    \r	 Nf = f)    Nwin32)AnyTwmiFc                 v    U R                  S5      (       a  U SS  n [        R                  R                  U 5      $ )N.   )
startswithdnsname	from_text)domains    F/home/matz/Project1/venv/lib/python3.13/site-packages/dns/win32util.py_config_domainr      s5     S!!ABZFxx!!&))    c                       \ rS rSrS rSrg)DnsInfo&   c                 .    S U l         / U l        / U l        g Nr   nameserverssearchselfs    r   __init__DnsInfo.__init__'   s    DK!DDKr   r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__ r   r   r   r   &   s    	r   r   c                   4   ^  \ rS rSrU 4S jrS rS rSrU =r$ )
_WMIGetter.   c                 @   > [         TU ]  5         [        5       U l        g r   )superr   r   info)r   	__class__s    r   r   _WMIGetter.__init__0   s     "#I	r   c                 z   [         R                  " 5          [        R                  " 5       nUR	                  5        H  nUR
                  (       d  M  UR                  (       d  M)  [        UR                  5      U R                  l	        UR                  (       a$  [        UR                  5      U R                  l        UR                  (       a5  UR                   Vs/ s H  n[        U5      PM     snU R                  l          O   [         R                  " 5         g s  snf ! [         R                  " 5         f = fr   )	pythoncomCoInitializer   WMI!Win32_NetworkAdapterConfiguration	IPEnabledDNSServerSearchOrderlistr(   r   	DNSDomainr   r   DNSDomainSuffixSearchOrderr   CoUninitialize)r   system	interfacexs       r   run_WMIGetter.run4   s    &&(/ WWYF%+%M%M%O	$...93Q3Q3Q489W9W4XDII1(223A)BUBU3V		 0(CC .7-Q-Q4"-Q %31$5-Q4"		 0 " &P ,,.4" ,,.s*   7D# D# %A8D# D2D# D# #D:c                 Z    U R                  5         U R                  5         U R                  $ r   )startjoinr(   r   s    r   get_WMIGetter.getF   s      

		yy r   r(   )	r   r   r   r    r   r9   r>   r!   __classcell__)r)   s   @r   r$   r$   .   s    &/$! !r   r$   c                       \ rS rSrSrg)r$   O   r"   N)r   r   r   r    r!   r"   r   r   r$   r$   O   s    r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)_RegistryGetterR   c                 "    [        5       U l        g r   )r   r(   r   s    r   r   _RegistryGetter.__init__S   s    	DIr   c                 B    UR                  SS5      R                  5       $ )N, )replacesplit)r   texts     r   _split_RegistryGetter._splitV   s     <<S)//11r   c                     U R                  U5       HC  nX R                  R                  ;  d  M  U R                  R                  R                  U5        ME     g r   )rO   r(   r   append)r   r   nss      r   _config_nameservers#_RegistryGetter._config_nameservers^   s=    kk+.YY222II))004 /r   c                     U R                  U5       HN  n[        U5      nX R                  R                  ;  d  M)  U R                  R                  R	                  U5        MP     g r   )rO   r   r(   r   rR   )r   r   ss      r   _config_search_RegistryGetter._config_searchc   sG    [[("1%II,,,II$$++A. )r   c                 H    [         R                  " US5      u  p4U(       a  U R                  U5        U(       d  U(       a<   [         R                  " US5      u  pTU(       a  [	        U5      U R
                  l        Om [         R                  " US5      u  p4U(       aL  U R                  U5         [         R                  " US5      u  pTU(       a  [	        U5      U R
                  l         [         R                  " US5      u  pdUc   [         R                  " US5      u  pdU(       a  U R                  U5        g g ! [         a    S n GN/f = f! [         a     Npf = f! [         a    S n Nf = f! [         a     Nf = f! [         a    S n Nf = f! [         a    S n Nf = f)N
NameServerDomainDhcpNameServer
DhcpDomain
SearchListDhcpSearchList)winregQueryValueExWindowsErrorrT   r   r(   r   rX   )r   keyalways_try_domainservers_domr   s          r   _config_fromkey_RegistryGetter._config_fromkeyi   s   #00lC
 ((1+#00h?FC+9#+>		(#!'!4!4S:J!KJG ,,W5!'!4!4S,!G/=c/BDII,"//\B	 ~" & 3 3C9I JIF ##F+ C    $ 
 $ #"G# (    
 $ "!F"sk   D; :E >E 0:E0 +F  F ;E
E
EEE-,E-0
E=<E= FFF! F!c                     [         R                  " USU S35      n [         R                  " US5      u  pEU[         R                  :w  a  [        e[         R                  " USU 35      n [         R                  " US5      u  puU[         R
                  :w  a  [        eUS-  (       + UR                  5         UR                  5         $ ! UR                  5         f = f! UR                  5         f = f! [         a     gf = f)NzPSYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\z\ConnectionPnpInstanceIDzSYSTEM\CurrentControlSet\Enum\ConfigFlagsr   F)ra   OpenKeyrb   REG_SZ
ValueError	REG_DWORDClose	Exception)r   lmguidconnection_keypnp_idttype
device_keyflagss           r   _is_nic_enabled_RegistryGetter._is_nic_enabled   s    , "(k+" +&,&9&9&'OV -((!'=fXF"J+)/)<)<Z)W F$4$44",, $)3; #((*"((* #((*"((* sA   C3 AC ,<C	 (C 8C3 	CC C00C3 3
D ?D c                    [         R                  " S[         R                  5      n [         R                  " US5      n U R	                  US5        UR                  5         [         R                  " US5      n Sn  [         R                  " X45      nUS-  n[         R                  " X55      n U R                  X5      (       d   UR                  5         M]  U R	                  US5        UR                  5         M  ! UR                  5         f = f! UR                  5         f = f! [         a     Of = fUR                  5         O! UR                  5         f = f UR                  5         U R                  $ ! UR                  5         f = f)z9Extract resolver configuration from the Windows registry.Nz2SYSTEM\CurrentControlSet\Services\Tcpip\ParametersTz=SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfacesr   r   F)
ra   ConnectRegistryHKEY_LOCAL_MACHINErn   ri   rr   EnumKeyr{   OSErrorr(   )r   rt   
tcp_params
interfacesiru   rd   s          r   r>   _RegistryGetter.get   sP    ''f.G.GHB#^^M
'((T:$$&#^^T
'A"#)>>*#@DFA"(.."BC,'+';';B'E'E$, !$		 !% 4 4S% @ #		  $$&" !$		& "!" $$&J$$&&
99 
s   E9 C< 'E9 9E =1D& /D D& E D *D& :E <DE9 D##D& &
D30E 2D33E 6E9 EE9 9Fr@   N)r   r   r   r    r   rO   rT   rX   ri   r{   r>   r!   r"   r   r   rE   rE   R   s'    	"	2	5
	/%	,N2	h#	r   rE   _getter_classc                  6    [        5       n U R                  5       $ )zExtract resolver configuration.)r   r>   )getters    r   get_dns_infor      s    zz|r   )sysdns._featuresr
   platformtypingr   dns.name_prefer_wmira   rc   rg   	NameErrorrs   	_featureshave	threadingr,   r   	_have_wmir   r   Threadr$   rE   __annotations__r   r   r"   r   r   <module>r      s    
 <<7K! }}%  		*  	!)) 	!B	 	U Un ["'U   ! !s   B9 9CC