File: //lib/python3.6/site-packages/DNS/__pycache__/win32dns.cpython-36.opt-1.pyc
3
V[ � @ sD d Z ddlZddlZdd� Zdd� Zdd� Zed kr@ed
e� � dS )a}
$Id$
Extract a list of TCP/IP name servers from the registry 0.1
0.1 Strobl 2001-07-19
Usage:
RegistryResolve() returns a list of ip numbers (dotted quads), by
scouring the registry for addresses of name servers
Tested on Windows NT4 Server SP6a, Windows 2000 Pro SP2 and
Whistler Pro (XP) Build 2462 and Windows ME
... all having a different registry layout wrt name servers :-/
Todo:
Program doesn't check whether an interface is up or down
(c) 2001 Copyright by Wolfgang Strobl ws@mystrobl.de,
License analog to the current Python license
WARNING: Python3 port completely untested on Windows.
� Nc C s� t | �d dkrt�g }xdtt | �d �D ]P}| dd� }| dd� } g }x|D ]}|jtt|��� qPW |jdj|�� q*W |S )z6convert a binary array of ip adresses to a python list� r N�.)�len�EnvironmentError�range�append�str�ord�join)�sZol�i�s1Zip�j� r �/usr/lib/python3.6/win32dns.py�binipdisplay s
r c C s ddl }ttt|jd| ���S )zsconvert "d.d.d.d,d.d.d.d" to ["d.d.d.d","d.d.d.d"].
also handle u'd.d.d.d d.d.d.d', as reporting on SF
r Nz[ ,])�re�list�mapr �split)r r r r r �
stringdisplay) s r c 4 C sv g } t jd t j�}yt j|d�}W nd tk
r� y:t j|d�}t j|d�\}}|rj|| krj| jt|�� W n tk
r� Y nX | S X yt j|d�d j� }W n t j|d�d j� }Y nX |r�|} t j|d�d }t j |� y�t j|d�}x�t
d�D ]t}yTt j||�}t j||�}t j|d�\}} t j|d �\}
}| jt|
�� t j |� W n tk
�rl P Y nX � q�W t j |� W n tk
�r� Y nX y�t j|d
�}x�t
d�D ]�}ypt j||�}t j||�}y2t j|d�\}}|�r�|| k�r�| jt|�� W n tk
�r Y nX t j |� W n tk
�r< P Y nX �q�W t j |� W n tk
�rf Y nX t j |� | S )Nz2SYSTEM\CurrentControlSet\Services\Tcpip\Parametersz+SYSTEM\CurrentControlSet\Services\VxD\MSTCPZ
NameServerZDhcpNameServerr zHSYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DNSRegisteredAdaptersi� ZDNSServerAddressCountZDNSServerAddressesz=SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces)
�winregZConnectRegistry�HKEY_LOCAL_MACHINE�OpenKeyr ZQueryValueEx�extendr r ZCloseKeyr ZEnumKeyr )Znameservers�x�yZ
nameserverZ dummytyper �n�zZdnscountZdnscounttypeZ dnsvaluesZ
dnsvaluestyper r r �RegistryResolve0 s|
r �__main__z
Name servers:)�__doc__r r r r r �__name__�printr r r r �<module> s D