200511280059expect

4   Expect
Expect 是利用 tcl設計的一個很簡單的範本語言,
精巧的設計可內崁到應用程式中.  Expect 最大的使用方面
是用來將交談式的程式(如 ftp, telnet)自動化.
你只需要瞭解Expect的語言結構與大約4到5個指令,就
能寫出非常有用的程式
利用 'autoexpect' 命令,可讓你抓住整個交談過程,
但Expect 做的還不只這些, 如果你要寫一個自動ftp到某個站的
程式,你可這樣寫,
1       #!/usr/local/bin/expect --
2       spawn ftp ftp.somehost.com
3       expect "ame:"
4       send "anonymous\r"
5       expect "assword:"
6       send "me@myhost.com\r"
7       expect "ftp>"
8       interact


(程式一行行解釋如下)1.   告訴shell 你要使用 expect
2.   開啟一個ftp session,
3.   期待 ame: 這個字串出現
4.   如果 ame:  出現, 則送出  anonymous     (ftp 的user name)
5.   期待 assword: 這個字串出現
6.   如果 assword: 出現, 則送出 me@myhost.com (ftp的 password)
7.   期待 ftp> 這個字串出現                             (ftp的 prompt)
8.   如果 ftp> 出現, 將交談權還給使用者 

Expect很厲害的地方在於你可以針對不同的回應做程式化的反應,
例如你可以用 timeout來限制執行的時間, 不過, Expect
在作Host 掃瞄時寫法非常困難, 為了更有效率,
掃瞄用perl寫, 高階行為判斷用Expect 寫.
fetch.exp與ipd(perl) 就是一個很好的範例

摘錄自:http://mis.im.tku.edu.tw/~zbwei12b/security/expect-2.html
回應
幫火狐「3」熱...
火狐鬥陣拼紀錄,有你一份!
關鍵字
    沒有新回應!
累積 | 今日
loading......