o
    àý°j]  ã                   @   s†  d dl mZ d dlmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZ d dlmZmZ d dlmZ edƒZed	ƒZed
ƒZG dd„ deƒZd ZdZdZdZdZdZdZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZ G dd„ deƒZ!G dd„ deƒZ"G dd „ d eƒZ#G d!d"„ d"eƒZ$G d#d$„ d$eƒZ%eefe e!fe"e#fe$e%fd%œZ&d&d'„ Z'd(d)„ Z(d*d+„ Z)d,d-„ Z*d.d/„ Z+d0S )1é    )Ú	inet_aton)Úuuid)Úhresult_errors)Úuuidtup_to_bin)ÚBYTEÚULONGÚWSTRÚGUIDÚNULL)ÚNDRCALLÚNDRUniConformantArray)ÚDCERPCException)z$552d076a-cb29-4e44-8b6a-d15e59e2c0afú1.0)z$ecbdb051-f208-46b9-8c8b-648d9d3f3944r   )z$1fff8faa-ec23-4e3f-a8ce-4b2f8707e636r   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚDCERPCSessionErrorNc                 C   s   t  | |||¡ d S )N)r   Ú__init__)ÚselfÚerror_stringÚ
error_codeÚpacket© r   ú‹/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/dcerpc/v5/iphlp.pyr   "   s   zDCERPCSessionError.__init__c                 C   sF   | j }|tjv rtj| d }tj| d }d| j ||f S d| j  S )Nr   é   z(IPHLP SessionError: code: 0x%x - %s - %sz,IPHLP SessionError: unknown error code: 0x%x)r   r   ÚERROR_MESSAGES)r   ÚkeyÚerror_msg_shortÚerror_msg_verboser   r   r   Ú__str__%   s   

zDCERPCSessionError.__str__)NNN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   !   s    
r   r   é   é   é   é   é   c                   @   s   e Zd ZdZdS )Ú
BYTE_ARRAYÚcN)r   r   r   Úitemr   r   r   r   r%   ?   s    r%   c                   @   ó   e Zd ZdZdeffZdS )Ú&IpTransitionProtocolApplyConfigChangesr   ÚNotificationNumN)r   r   r   Úopnumr   Ú	structurer   r   r   r   r)   G   ó    ÿr)   c                   @   ó   e Zd ZdeffZdS )Ú.IpTransitionProtocolApplyConfigChangesResponseÚ	ErrorCodeN©r   r   r   r   r,   r   r   r   r   r/   M   ó    ÿr/   c                   @   s&   e Zd ZdZdefdefdeffZdS )Ú(IpTransitionProtocolApplyConfigChangesExr   r*   Ú
DataLengthÚDataN)r   r   r   r+   r   r   r%   r,   r   r   r   r   r3   S   s    ýr3   c                   @   r.   )Ú0IpTransitionProtocolApplyConfigChangesExResponser0   Nr1   r   r   r   r   r6   [   r2   r6   c                   @   s   e Zd ZdZdddeffZdS )ÚIpTransitionCreatev6Inv4Tunnelr    )ÚLocalAddressú4s='')ÚRemoteAddressr9   ÚInterfaceNameN)r   r   r   r+   r   r,   r   r   r   r   r7   a   s    ýr7   c                   @   r.   )Ú&IpTransitionCreatev6Inv4TunnelResponser0   Nr1   r   r   r   r   r<   i   r2   r<   c                   @   r(   )ÚIpTransitionDeletev6Inv4Tunnelr!   Ú
TunnelGuidN)r   r   r   r+   r	   r,   r   r   r   r   r=   o   r-   r=   c                   @   r.   )Ú&IpTransitionDeletev6Inv4TunnelResponser0   Nr1   r   r   r   r   r?   u   r2   r?   )r   r   r    r!   c                 C   s(   | t kr| S | dd … dkr| d S | S )Néÿÿÿÿú )r
   )Ústringr   r   r   ÚcheckNullStringˆ   s
   rC   c                 C   s   t ƒ }||d< |  |¡S )Nr*   )r)   Úrequest)ÚdceÚnotification_numrD   r   r   r   Ú'hIpTransitionProtocolApplyConfigChanges’   s   
rG   c                 C   s,   t ƒ }||d< t|ƒ|d< ||d< |  |¡S )Nr*   r4   r5   )r3   ÚlenrD   )rE   rF   Únotification_datarD   r   r   r   Ú)hIpTransitionProtocolApplyConfigChangesExš   s
   
rJ   c                 C   sD   t ƒ }t|ƒ|d< t|ƒ|d< t|ƒ|d< d|jd jd< |  |¡S )Nr8   r:   r;   é   ÚMaximumCount)r7   r   rC   ÚfieldsrD   )rE   Úlocal_addressÚremote_addressÚinterface_namerD   r   r   r   ÚhIpTransitionCreatev6Inv4Tunnel£   s   
rQ   c                 C   s   t ƒ }t |¡|d< |  |¡S )Nr>   )r=   r   Ústring_to_binrD   )rE   Útunnel_guidrD   r   r   r   ÚhIpTransitionDeletev6Inv4Tunnel­   s   
rT   N),Úsocketr   Úimpacketr   r   Úimpacket.uuidr   Úimpacket.dcerpc.v5.dtypesr   r   r   r	   r
   Úimpacket.dcerpc.v5.ndrr   r   Úimpacket.dcerpc.v5.rpcrtr   ÚMSRPC_UUID_IPHLP_IP_TRANSITIONÚMSRPC_UUID_IPHLP_TEREDOÚ MSRPC_UUID_IPHLP_TEREDO_CONSUMERr   Ú(NOTIFICATION_ISATAP_CONFIGURATION_CHANGEÚ-NOTIFICATION_PROCESS6TO4_CONFIGURATION_CHANGEÚ(NOTIFICATION_TEREDO_CONFIGURATION_CHANGEÚ(NOTIFICATION_IP_TLS_CONFIGURATION_CHANGEÚ&NOTIFICATION_PORT_CONFIGURATION_CHANGEÚ'NOTIFICATION_DNS64_CONFIGURATION_CHANGEÚ6NOTIFICATION_DA_SITE_MGR_LOCAL_CONFIGURATION_CHANGE_EXr%   r)   r/   r3   r6   r7   r<   r=   r?   ÚOPNUMSrC   rG   rJ   rQ   rT   r   r   r   r   Ú<module>   sJ   
ü

	
