banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Send input to telnet  XML
  [Question]   Send input to telnet 17/01/2011 14:15:43 (+0700) | #1 | 229649
kokichi88
Member

[Minus]    0    [Plus]
Joined: 03/10/2007 11:24:48
Messages: 14
Offline
[Profile] [PM]
Chào mọi người, em đang viết 1 file bash và muốn truyền tham số vào câu lệnh telnet mà chưa biết làm thế nào.
Ai có kinh nghiệm về vấn đề này không chỉ giúp em smilie
[Up] [Print Copy]
  [Question]   Send input to telnet 17/01/2011 14:50:42 (+0700) | #2 | 229650
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Mục đích của bạn là gì vậy? Bạn cho một ví dụ cụ thể xem.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Send input to telnet 17/01/2011 15:09:41 (+0700) | #3 | 229653
kokichi88
Member

[Minus]    0    [Plus]
Joined: 03/10/2007 11:24:48
Messages: 14
Offline
[Profile] [PM]
cụ thể em muốn viết 1 file bash thực hiện 1 tập hợp các câu lệnh telnet với input là các tham số truyền vào
[Up] [Print Copy]
  [Question]   Send input to telnet 17/01/2011 16:04:10 (+0700) | #4 | 229657
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

kokichi88 wrote:
cụ thể em muốn viết 1 file bash thực hiện 1 tập hợp các câu lệnh telnet với input là các tham số truyền vào  

Kiểu như này hả bạn?
Code:
( echo open hvaonline.net 80; sleep 2; echo "HEAD / HTTP/1.1"; echo; echo; sleep 2; exit ) | telnet


Ngoài ra, bạn có thể tìm hiểu expect: http://www.nist.gov/el/msid/expect.cfm
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Send input to telnet 17/01/2011 21:02:58 (+0700) | #5 | 229677
kokichi88
Member

[Minus]    0    [Plus]
Joined: 03/10/2007 11:24:48
Messages: 14
Offline
[Profile] [PM]
Cám ơn anh quanta, em làm được rồi smilie bằng cách dùng expect. Nhưng em chưa hiểu rõ lắm cách làm của anh. Bình thường nhiều câu lệnh thực hiện liên tiếp thì cách nhau bởi |. Nhưng trong câu lệnh của anh thì mỗi echo là 1 input cho process telnet đang chạy. Em chưa hiểu rõ lắm chỗ này. Anh có thể giải thích rõ hơn được không?
[Up] [Print Copy]
  [Question]   Send input to telnet 17/01/2011 21:13:31 (+0700) | #6 | 229678
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

kokichi88 wrote:
Cám ơn anh quanta, em làm được rồi smilie bằng cách dùng expect.
 

Thảy thử đoạn expect của bạn lên xem.

kokichi88 wrote:

Nhưng em chưa hiểu rõ lắm cách làm của anh. Bình thường nhiều câu lệnh thực hiện liên tiếp thì cách nhau bởi |. Nhưng trong câu lệnh của anh thì mỗi echo là 1 input cho process telnet đang chạy. Em chưa hiểu rõ lắm chỗ này. Anh có thể giải thích rõ hơn được không? 

--> Bạn đọc lại về pipe (|) nhé.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Send input to telnet 18/01/2011 12:39:33 (+0700) | #7 | 229717
kokichi88
Member

[Minus]    0    [Plus]
Joined: 03/10/2007 11:24:48
Messages: 14
Offline
[Profile] [PM]
Xin lỗi chỗ này em viết
Bình thường nhiều câu lệnh thực hiện liên tiếp thì cách nhau bởi | 

do vội nên không được chính xác lắm, bổ sung thêm là output của lệnh trước sẽ là input cho lệnh sau.

Còn về đoạn expect của em đơn gian ví dụ như sau

Code:
#!/usr/bin/expect
set key [lindex $argv 0]
spawn telnet x.x.x.x x
expect " "
send "delete $key\r"
expect "DELETED"
send "quit"


Em đang dùng database dạng key-value và dùng telnet để làm việc trên đó trong 1 số trường hợp smilie.

[Up] [Print Copy]
  [Question]   Send input to telnet 18/01/2011 13:09:09 (+0700) | #8 | 229719
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

kokichi88 wrote:
chỗ này em viết
Bình thường nhiều câu lệnh thực hiện liên tiếp thì cách nhau bởi | 

do vội nên không được chính xác lắm, bổ sung thêm là output của lệnh trước sẽ là input cho lệnh sau.
 

OK. Đoạn code trên cũng tương đương với việc bạn telnet đến HVA trên port 80, gõ HEAD / HTTP/1.1 rồi enter 2 phát thôi.

kokichi88 wrote:

Còn về đoạn expect của em đơn gian ví dụ như sau

Code:
#!/usr/bin/expect
set key [lindex $argv 0]
spawn telnet x.x.x.x x
expect " "
send "delete $key\r"
expect "DELETED"
send "quit"


Em đang dùng database dạng key-value và dùng telnet để làm việc trên đó trong 1 số trường hợp smilie.
 

Hì, Redis hả. Ngoài telnet, bạn có thể dùng netcat hoặc redis-cli.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Send input to telnet 18/01/2011 14:03:58 (+0700) | #9 | 229722
kokichi88
Member

[Minus]    0    [Plus]
Joined: 03/10/2007 11:24:48
Messages: 14
Offline
[Profile] [PM]
Không em dùng membase, thằng này tệ quá nó không có API delete key(API : C hay Java).
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|