
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \`Z  ã               @   sF  d dl Z d dlZd dlZd dlmZ dgZd ZdZe	dgƒZ
e	dgƒZe	dgƒZe	dgƒZe	d	gƒZe	d gƒZe	d
gƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	d gƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZe	dgƒZ e	dgƒZ!e	dgƒZ"e	dgƒZ#e	dgƒZ$e	dgƒZ%e	dgƒZ&e	d gƒZ'e	d!gƒZ(e	d"gƒZ)e	d#gƒZ*e	d$gƒZ+e	d%gƒZ,e	d&gƒZ-e	d'gƒZ.e	d(gƒZ/e	d)gƒZ0e	d*gƒZ1e	dgƒZ2e	d+gƒZ3e	d,gƒZ4e	d-gƒZ5e	d.gƒZ6e	d/gƒZ7e	d0gƒZ8e	d1gƒZ9e	d2gƒZ:e	d3gƒZ;e	d4gƒZ<e	d5gƒZ=e	d6gƒZ>e	d7gƒZ?e	d8gƒZ@e	d9gƒZAe	d:gƒZBe	d;gƒZCe	d<gƒZDe	d=gƒZEe	d>gƒZFe	d?gƒZGe	d@gƒZHe	dAgƒZIe	dBgƒZJe	dCgƒZKe	dDgƒZLe	dEgƒZMe	dFgƒZNe	dGgƒZOe	dgƒZPe	d gƒZQeRedHƒ�rejSZTnejUZTG dId„ dƒZVdJdK„ ZWeXdLk�rBeWƒ  dS )Mé    N)Ú	monotonicÚTelneté   éÿ   éþ   éý   éü   éû   éð   éñ   éò   éó   éô   éõ   éö   é÷   éø   éù   éú   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é0   é1   éŠ   é‹   éŒ   ÚPollSelectorc               @   s  e Zd Zddejfdd„Zdejfdd„Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zd;dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd<d5d6„Zd7d8„ Zd9d:„ Z dS )=r   Nr   c             C   sh   t | _|| _|| _|| _d | _d| _d| _d| _d| _	d| _
d| _d| _d | _|d k	rd| j|||ƒ d S )Nó    r   )Ú
DEBUGLEVELÚ
debuglevelÚhostÚportÚtimeoutÚsockÚrawqÚirawqÚcookedqÚeofÚiacseqÚsbÚsbdataqÚoption_callbackÚopen)ÚselfrL   rM   rN   © rZ   ú!/usr/lib64/python3.6/telnetlib.pyÚ__init__Ä   s    zTelnet.__init__c             C   s6   d| _ |st}|| _|| _|| _tj||f|ƒ| _d S )Nr   )rS   ÚTELNET_PORTrL   rM   rN   ÚsocketZcreate_connectionrO   )rY   rL   rM   rN   rZ   rZ   r[   rX   Ü   s    zTelnet.openc             C   s   | j ƒ  d S )N)Úclose)rY   rZ   rZ   r[   Ú__del__ì   s    zTelnet.__del__c             G   s@   | j dkr<td| j| jf dd� |r4t|| ƒ nt|ƒ d S )Nr   zTelnet(%s,%s):ú )Úend)rK   ÚprintrL   rM   )rY   ÚmsgÚargsrZ   rZ   r[   rd   ð   s
    
z
Telnet.msgc             C   s
   || _ d S )N)rK   )rY   rK   rZ   rZ   r[   Úset_debuglevelþ   s    zTelnet.set_debuglevelc             C   s.   | j }d | _ d| _d| _d| _|r*|jƒ  d S )NTrI   r   )rO   rS   rT   rU   r_   )rY   rO   rZ   rZ   r[   r_     s    zTelnet.closec             C   s   | j S )N)rO   )rY   rZ   rZ   r[   Ú
get_socket  s    zTelnet.get_socketc             C   s
   | j jƒ S )N)rO   Úfileno)rY   rZ   rZ   r[   rh     s    zTelnet.filenoc             C   s4   t |kr|jt t t  ƒ}| jd|ƒ | jj|ƒ d S )Nzsend %r)ÚIACÚreplacerd   rO   Úsendall)rY   ÚbufferrZ   rZ   r[   Úwrite  s    zTelnet.writec             C   s   t |ƒ}| jƒ  | jj|ƒ}|dkrN|| }| jd |… }| j|d … | _|S |d k	r`tƒ | }tƒ �¬}|j| tjƒ x–| j	�s|j
|ƒrîtdt | jƒ| ƒ}| jƒ  | jƒ  | jj||ƒ}|dkrî|| }| jd |… }| j|d … | _|S |d k	rx|tƒ  }|dk rxP qxW W d Q R X | jƒ S )Nr   )ÚlenÚprocess_rawqrR   ÚfindÚ_timeÚ_TelnetSelectorÚregisterÚ	selectorsÚ
EVENT_READrS   ÚselectÚmaxÚ	fill_rawqÚread_very_lazy)rY   ÚmatchrN   ÚnÚiÚbufÚdeadlineÚselectorrZ   rZ   r[   Ú
read_until$  s8    



zTelnet.read_untilc             C   s4   | j ƒ  x| js"| jƒ  | j ƒ  q
W | j}d| _|S )NrI   )ro   rS   rx   rR   )rY   r}   rZ   rZ   r[   Úread_allI  s    zTelnet.read_allc             C   s>   | j ƒ  x$| j r,| j r,| jƒ  | j ƒ  q
W | j}d| _|S )NrI   )ro   rR   rS   rx   )rY   r}   rZ   rZ   r[   Ú	read_someS  s    zTelnet.read_somec             C   s6   | j ƒ  x$| j r,| jƒ r,| jƒ  | j ƒ  q
W | jƒ S )N)ro   rS   Ú
sock_availrx   ry   )rY   rZ   rZ   r[   Úread_very_eagerb  s
    zTelnet.read_very_eagerc             C   s>   | j ƒ  x,| j r4| j r4| jƒ r4| jƒ  | j ƒ  q
W | jƒ S )N)ro   rR   rS   rƒ   rx   ry   )rY   rZ   rZ   r[   Ú
read_eagerp  s
    zTelnet.read_eagerc             C   s   | j ƒ  | jƒ S )N)ro   ry   )rY   rZ   rZ   r[   Ú	read_lazy~  s    zTelnet.read_lazyc             C   s,   | j }d| _ | r(| jr(| j r(tdƒ‚|S )NrI   ztelnet connection closed)rR   rS   rP   ÚEOFError)rY   r}   rZ   rZ   r[   ry   ‰  s
    zTelnet.read_very_lazyc             C   s   | j }d| _ |S )NrI   )rV   )rY   r}   rZ   rZ   r[   Úread_sb_data–  s    zTelnet.read_sb_datac             C   s
   || _ d S )N)rW   )rY   ÚcallbackrZ   rZ   r[   Úset_option_negotiation_callback¢  s    z&Telnet.set_option_negotiation_callbackc             C   sX  ddg}�y�xþ| j �r| jƒ }| jsj|tkr0q|dkr:q|tkrZ|| j | || j< qn|  j|7  _qt| jƒdk�r(|ttt	t
fkrš|  j|7  _qd| _|tkr¾|| j | || j< nh|tkrÔd| _d| _n&|tkrúd| _| j|d  | _d|d< | j�r| j| j|tƒ n| jdt|ƒ ƒ qt| jƒdkr| jdd… }d| _|}|ttfk�r®| jd|tk�rrd�ptd	t|ƒƒ | j�r˜| j| j||ƒ n| jjtt
 | ƒ q|t	t
fkr| jd|t	k�rÐd
�pÒdt|ƒƒ | j�rö| j| j||ƒ q| jjtt | ƒ qW W n" tk
�r2   d| _d| _Y nX | j|d  | _| j|d  | _d S )NrI   ó   r   r   zIAC %d not recognizedr   z	IAC %s %dÚDOÚDONTÚWILLÚWONT)rP   Úrawq_getcharrT   ÚtheNULLri   rU   rn   rŒ   r�   rŽ   r�   ÚSBrV   ÚSErW   rO   ÚNOOPTrd   Úordrk   r‡   rR   )rY   r}   ÚcÚcmdÚoptrZ   rZ   r[   ro   ¦  sh    zTelnet.process_rawqc             C   sZ   | j s| jƒ  | jrt‚| j | j| jd … }| jd | _| jt| j ƒkrVd| _ d| _|S )Nr   rI   r   )rP   rx   rS   r‡   rQ   rn   )rY   r–   rZ   rZ   r[   r�   î  s    zTelnet.rawq_getcharc             C   sL   | j t| jƒkrd| _d| _ | jjdƒ}| jd|ƒ | | _| j| | _d S )NrI   r   é2   zrecv %r)rQ   rn   rP   rO   Zrecvrd   rS   )rY   r}   rZ   rZ   r[   rx      s    zTelnet.fill_rawqc          
   C   s.   t ƒ �}|j| tjƒ t|jdƒƒS Q R X d S )Nr   )rr   rs   rt   ru   Úboolrv   )rY   r   rZ   rZ   r[   rƒ     s    zTelnet.sock_availc             C   sê   t jdkr| jƒ  d S tƒ �Ä}|j| tjƒ |jt jtjƒ xžx˜|jƒ D ]Œ\}}|j	| kr¦y| j
ƒ }W n tk
r‚   tdƒ d S X |rÔt jj|jdƒƒ t jjƒ  qH|j	t jkrHt jjƒ jdƒ}|sÊd S | j|ƒ qHW q>W W d Q R X d S )NZwin32z(*** Connection closed by remote host ***Úascii)ÚsysÚplatformÚmt_interactrr   rs   rt   ru   Ústdinrv   Zfileobjr…   r‡   rc   Ústdoutrm   ÚdecodeÚflushÚreadlineÚencode)rY   r   ÚkeyZeventsÚtextÚlinerZ   rZ   r[   Úinteract  s,    

zTelnet.interactc             C   s@   dd l }|j| jf ƒ x$tjjƒ }|s(P | j|jdƒƒ qW d S )Nr   r›   )Ú_threadÚstart_new_threadÚlistenerrœ   rŸ   r£   rm   r¤   )rY   r©   r§   rZ   rZ   r[   rž   1  s    
zTelnet.mt_interactc             C   sV   xPy| j ƒ }W n tk
r*   tdƒ d S X |rDtjj|jdƒƒ qtjjƒ  qW d S )Nz(*** Connection closed by remote host ***r›   )r…   r‡   rc   rœ   r    rm   r¡   r¢   )rY   ÚdatarZ   rZ   r[   r«   ;  s    zTelnet.listenerc             C   sP  d }|d d … }t t|ƒƒ}x8|D ]0}t|| dƒs"|s@dd l}|j|| ƒ||< q"W |d k	rhtƒ | }tƒ �¶}|j| tj	ƒ x | j
�s| jƒ  xP|D ]H}|| j| jƒ}|r–|jƒ }	| jd |	… }
| j|	d … | _|||
fS q–W |d k	�r|j|ƒ}|tƒ  }|�s|dk r€P nq€| jƒ  q€W W d Q R X | jƒ }
|
 �rF| j
�rFt‚dd |
fS )NÚsearchr   r   éÿÿÿÿ)Úrangern   ÚhasattrÚreÚcompilerq   rr   rs   rt   ru   rS   ro   r­   rR   rb   rv   rx   ry   r‡   )rY   ÚlistrN   r±   Úindicesr|   r~   r   ÚmÚer¦   ZreadyrZ   rZ   r[   ÚexpectH  sB    
 





zTelnet.expectc             C   s   | S )NrZ   )rY   rZ   rZ   r[   Ú	__enter__€  s    zTelnet.__enter__c             C   s   | j ƒ  d S )N)r_   )rY   ÚtypeÚvalueÚ	tracebackrZ   rZ   r[   Ú__exit__ƒ  s    zTelnet.__exit__)N)N)!Ú__name__Ú
__module__Ú__qualname__r^   Z_GLOBAL_DEFAULT_TIMEOUTr\   rX   r`   rd   rf   r_   rg   rh   rm   r€   r�   r‚   r„   r…   r†   ry   rˆ   rŠ   ro   r�   rx   rƒ   r¨   rž   r«   r·   r¸   r¼   rZ   rZ   rZ   r[   r   �   s:   7

%
H

8c              C   sÔ   d} x0t jdd … r4t jd dkr4| d } t jd= qW d}t jdd … rRt jd }d}t jdd … rœt jd }yt|ƒ}W n  tk
rš   tj|dƒ}Y nX tƒ �(}|j| ƒ |j||dd� |j	ƒ  W d Q R X d S )	Nr   r   z-dZ	localhostr   Ztcpg      à?)rN   )
rœ   ÚargvÚintÚ
ValueErrorr^   Zgetservbynamer   rf   rX   r¨   )rK   rL   rM   ZportstrZtnrZ   rZ   r[   Útest‡  s$    


rÃ   Ú__main__)Yrœ   r^   rt   Ztimer   rq   Ú__all__rJ   r]   Úbytesri   r�   rŒ   r�   rŽ   r‘   r“   ZNOPZDMZBRKZIPZAOZAYTZECZELZGAr’   ZBINARYZECHOZRCPZSGAZNAMSZSTATUSZTMZRCTEZNAOLZNAOPZNAOCRDZNAOHTSZNAOHTDZNAOFFDZNAOVTSZNAOVTDZNAOLFDZXASCIIZLOGOUTZBMZDETZSUPDUPZSUPDUPOUTPUTZSNDLOCZTTYPEZEORZTUIDZOUTMRKZTTYLOCZVT3270REGIMEZX3PADZNAWSZTSPEEDZLFLOWZLINEMODEZXDISPLOCZOLD_ENVIRONZAUTHENTICATIONZENCRYPTZNEW_ENVIRONZTN3270EZXAUTHÚCHARSETZRSPZCOM_PORT_OPTIONZSUPPRESS_LOCAL_ECHOZTLSZKERMITZSEND_URLZ	FORWARD_XZPRAGMA_LOGONZ
SSPI_LOGONZPRAGMA_HEARTBEATZEXOPLr”   r°   rH   rr   ZSelectSelectorr   rÃ   r½   rZ   rZ   rZ   r[   Ú<module>$   s°   







































































   }
