a
    kÄ#d&  ã                   @   sp   d dl mZ d dlZdd„ Zdd„ Zedkrld dlZzeejdd… ƒ W n  eyj   e	d	ej
d
� Y n0 dS )é    )Úprint_functionNc                   C   s   t dtjd� d S )NzÁUsage: check_asdis -i <pcap_file> [-o <wrong_packets.pcap>]
    -v   increase verbosity
    -d   hexdiff packets that differ
    -z   compress output pcap
    -a   open pcap file in append mode©Úfile)ÚprintÚsysÚstderr© r   r   úN/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/tools/check_asdis.pyÚusage
   s    ür
   c                 C   sº  d }d }d}d}d}d}zžt   | d¡}|d D ]r\}}	|dkrJtƒ  t‚q.|dkrX|	}q.|dkrf|	}q.|dkrx|d7 }q.|d	kr†d
}q.|dkr”d
}q.|dkr.d
}q.|d u r´t  d¡‚W n< t jyò }
 z"td|
 tjd� t‚W Y d }
~
n
d }
~
0 0 ddlm} ddl	m
}m}m} ddlm} ||ƒ}d }|�rN|||||jd�}| d ¡ |j |j¡}|d u �r~td|j tjd� t‚d}d}d}|D ]î\}}|d7 }z||ƒ}t|ƒ}W nR t�yÈ   ‚ Y nž t�y }
 z$td||
f ƒ |d7 }W Y d }
~
njd }
~
0 0 ||k�r,|dk�rŽtd| ƒ �qŽn:td| ƒ |d7 }|dk�rVtt|ƒƒ |�rf|||ƒ |d u�rŽ| |¡ �qŽ|d7 }|| | }td|||||�o®d| | f ƒ d S )NFr   z	hi:o:azdvz-hz-iz-oz-vé   z-dTz-az-zzMissing pcap file (-i)z	ERROR: %sr   )Úconf)ÚRawPcapReaderÚRawPcapWriterÚhexdiff)Úall)ÚappendÚgzÚlinktypez- Unknown link type [%i]. Can't test anything!éÿÿÿÿz!Dissection error on packet %i: %sé   zPacket %i okzPacket %i differsz@%i total packets. %i ok, %i differed, %i failed. %.2f%% correct.g      Y@)Úgetoptr
   Ú
SystemExitÚGetoptErrorr   r   r   Zscapy.configr   Zscapy.utilsr   r   r   Zscapy.layersr   r   Z_write_headerZl2typesÚgetÚstrÚKeyboardInterruptÚ	ExceptionÚreprÚwrite)ÚargvZPCAP_INZPCAP_OUTZCOMPRESSÚAPPENDZDIFFÚVERBOSEÚoptsÚoptÚparamÚer   r   r   r   r   ZpcapZpcap_outZLLclsÚiZdifferÚfailedÚp1ÚmetaZp2dÚp2Zcorrectr   r   r	   Úmain   sŽ    








ÿr+   Ú__main__r   zInterrupted by user.r   )Ú
__future__r   r   r
   r+   Ú__name__r   r   r   r   r   r   r   r   r	   Ú<module>   s   Q