※ 本文轉錄自 [Linux] 看板
作者: light (Linux, Running..) 看板: Linux
標題: Re: 請問如何寫持續登入的script?
時間: Tue Jan 7 01:53:25 2003
※ 引述《radom.bbs@bbs.cs.nthu.edu.tw (缺水中...)》之銘言:
> 在先前的文章看過,
> 使用spawn和interact的方式,
> 可以防閒置、自動登入,
> 但不知道有沒有辦法持續連線直到登入呢??
> 像kkcity...
> 有時太難連了...如果有這個script
> 搞不好可以多拉一些人進入linux的行列...:p
剛把前面Post的自動登入Script,稍做修改成有自動重新連線的,
可以用來自動登入KKCity,Command可指定帳號及密碼,以及主機位址,
有興趣的朋友請幫忙測試看看吧。
使用方法:
將下面Script內容儲存 EX. 存成 kkcity.ex
然後讓它可執行 EX. chmod +x kkcity.ex
執行程式則輸入 EX. ./kkcity yourname yourpassword
就可以自動重新連線直到登入KKCity
Expect用中文字好像時常出問題,不知道有沒有方法可解決。
------------------ 以下都是Script檔案的內容 -------------------
#!/usr/bin/expect
# BBS Auto Connection Script Using Expect
# KKCity Tested
if { $argc == 3 } {
set username [lindex $argv 0]
set password [lindex $argv 1]
set hostname [lindex $argv 2]
} elseif { $argc == 2 } {
set username [lindex $argv 0]
set password [lindex $argv 1]
set hostname "bbs.kkcity.com.tw"
} else {
set username "guest"
set password "guest"
set hostname "bbs.kkcity.com.tw"
}
set IsConnect 0
while { $IsConnect != 1 } {
spawn telnet "-8" "$hostname"
expect {
"有人客來呦" { set IsConnect 1 }
"Connection closed by foreign host" { continue }
}
}
expect {
"輸入代號:" {
send "$username\n"
expect "輸入密碼:"
send "$password\n"
send "\n\n\n\nf\n"
}
}
# send out the NULL character every 600 secs (10 mins)
interact timeout 600 { send -null }
exit
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>