telnetlib模塊


Telnet.read_until(expected, timeout=None)
讀取,直到預期的給定字節字符串(b’ ')*或時間超時。
如果找不到匹配項,則返回可用的內容,**可能是空字節**。如果*
連接已關閉且沒有可用的cooked數據
,則引發EOFError

Telnet.read_all()
讀取所有字節類型數據,直到EOF為止;阻止直到連接關閉。

Telnet.read_some()
至少讀取一個字節的cooked數據,除非EOF被引發。如果引發EOF,則返回b’ '。如果沒有可用數據則阻立即止。

Telnet.read_very_eager()
在I / O(eager)中可以讀取無阻塞的所有內容。
如果連接關閉且沒有可用的cooked數據,則引發EOFError。如果沒有cooked數據則返回b’ '。除非在IAC序列中,否則不要阻止。

Telnet.read_eager()
讀取真實有效的數據。
如果連接關閉且沒有可用的coked據,則引發EOFError。如果沒有cooked數據則返回b’ '。除非在IAC序列中,否則不要阻止。

Telnet.read_lazy()
處理和返回隊列中已有的數據(lazy)。
如果連接已關閉且沒有可用數據,則引發EOFError。如果沒有cooked數據則返回b ’ '。除非在IAC序列中,否則不要阻止。

Telnet.read_very_lazy()
返回在cooked隊列中的任何可用數據(very_lazy)。
如果連接已關閉且沒有可用數據,則引發EOFError。如果沒有cooked數據則返回b’ '。這種方法從不阻止。

Telnet.read_sb_data()
返回在SB / SE對之間收集的數據(子選項開始/結束)。當使用SE命令調用回調時,回調應該訪問這些數據。這種方法從不阻止。

Telnet.open(host,port = 0 [,timeout])
連接到主機。可選的第二個參數是端口號,默認為標准Telnet端口(23)。可選的timeout參數指定阻塞操作(如連接嘗試)的超時(以秒為單位)(如果未指定,將使用全局默認超時設置)。
不要嘗試重新打開已連接的實例

Telnet.msg(msg,* args)
當調試級別> 0時,打印調試消息。如果存在額外的參數,則使用標准字符串格式化運算符在消息中替換它們。

Telnet.set_debuglevel(DEBUGLEVEL)
設置調試級別。 debuglevel的值越高,您獲得的調試輸出就越多(在sys.stdout上)。

Telnet.close()
關閉連接。

Telnet.get_socket()
返回內部使用的套接字對象

Telnet.fileno()
返回內部使用的套接字對象的文件描述符

Telnet.write(buffer)
將一個字節字符串寫入套接字,使任何IAC字符加倍。如果連接被阻止,這可能會阻止。如果連接關閉,可能會引發OSError。
版本3.3中更改:此方法用於引發socket.error,它現在是OSError的別名。

Telnet.interact()
交互功能,模擬一個非常愚蠢的Telnet客戶端。

Telnet.mt_interact()
多線程版本的interact()。

Telnet.expect(list,timeout = None)
直到讀取正則表達式列表中的一個匹配。
第一個參數是正則表達式列表,可以是已編譯的(正則表達式對象),也可以是未編譯的(字節串)。可選的第二個參數是超時,以秒為單位;默認是無限期阻止。
返回三個元組的元組:匹配的第一個正則表達式列表中的索引;匹配對象返回;並且讀取的字節直到包括匹配。
如果找到文件末尾並且沒有讀取任何字節,則引發EOFError。否則,當沒有匹配時,返回(-1,None,data)數據是到目前為止接收的字節(如果發生超時,則可能是空字節)。
如果正則表達式以貪婪匹配(例如。*)結束,或者如果多個表達式可以匹配相同的輸入,則結果是非確定性的,並且可能取決於I / O時序。

Telnet.set_option_negotiation_callback(回調)
每次在輸入流上讀取telnet選項時,將使用以下參數調用此回調(如果已設置):callback(telnet socket,命令(DO / DONT / WILL / WONT),選項)。之后telnetlib沒有做任何其他操作。

示例

import telnetlib
import time
tn = telnetlib.Telnet(host='192.168.56.10',port=23,timeout=10)	# 打開一個連接
tn.set_debuglevel(0)			# 設置調試級別

tn.read_until(b'username:')		# 讀取指定的內容(讀取和寫入的都必須是字節類型)
tn.write(b'admin' + b'\n')		# 寫入
tn.read_until(b'password:')
tn.write(b'admin@123' + b'\n')

time.sleep(1)		
print(tn.read_very_eager().decode('utf8'))		# 讀取輸出的所有信息
shuru = input()
tn.write(bytes(shuru,encoding='utf8')+b'\n')	
tn.close()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM