天天看點

python中telnetlib子產品的使用

一、Windows下開啟Telnet服務

1、Windows 2000/XP/2003/Vista:預設已安裝但禁止了Telnet服務

(1)開啟Telnet:運作services.msc打開服務管理,找到Telnet服務項設定其啟動類型為“自動”或者“手動”(更安全,隻在需要的時候才啟用),然後啟動該服務即可。

2、Windos 7:預設未安裝Telnet服務

(1)安裝Telnet:依次點選“開始”→“控制台”→“程式”,“在程式和功能”找到并點選“打開或關閉Windows 功能”進入Windows 功能設定對話框。找到并勾選“Telnet用戶端”和“Telnet伺服器”,最後“确定”稍等片刻即可完成安裝。

(2)開啟Telnet:方法同1中的(1)

二、Linux下開啟Telnet服務

(1)安裝telnetd(即telnet-server):apt-get install telnetd

(2)安裝xinetd(telnet-server的運作需要由xinetd來管理):apt-get install xinetd

(3)配置telnet檔案:vi /etc/xinetd.d/telnet

(4)開啟xinetd:service xinetd start

三、使用Python實作Telnet遠端登入

  Python中專門提供了telnetlib庫,用來完成基于telnet協定的通信功能。

  利用telnetlib實作遠端登入功能的代碼如下:

<a> 1 # -*- coding: utf-8 -*-   2   3 import telnetlib  4    5  '''Telnet遠端登入:Windows用戶端連接配接Linux伺服器'''  6    7  # 配置選項  8  Host = '192.168.1.2' # Telnet伺服器IP  9  username = 'admin'   # 登入使用者名 10  password = '123456'  # 登入密碼 11  finish = ':~$ '      # 指令提示符(辨別着上一條指令已執行完畢) 12   13  # 連接配接Telnet伺服器 14  tn = telnetlib.Telnet(Host) 15   16  # 輸入登入使用者名 17  tn.read_until('login: ') 18  tn.write(username + '\n') 19   20  # 輸入登入密碼 21  tn.read_until('Password: ') 22  tn.write(password + '\n') 23   24  # 登入完畢後,執行ls指令 25  tn.read_until(finish) 26  tn.write('ls\n') 27   28  # ls指令執行完畢後,終止Telnet連接配接(或輸入exit退出) 29  tn.read_until(finish) 30  tn.close() # tn.write('exit\n')</a>

###################################################

#!/usr/bin/env python

import getpass

import sys

import telnetlib

HOST = "10.1.1.1"

user = raw_input("Enter your remote account: ")

password = getpass.getpass()

print password

tn = telnetlib.Telnet(HOST)

print "Begin login."

tn.read_until("login:")

tn.write(user + "\n")

if password:

    tn.read_until("Password:")

    tn.write(password + "\n")

print "Login Done."

tn.write("ls\n")

tn.write("exit\n")

print tn.read_all()

這是個簡單的例子

技術改變世界!

--狂詩絕劍