관리-도구
편집 파일: cdesc-Telnet.yaml
--- !ruby/object:RI::ClassDescription attributes: - !ruby/object:RI::Attribute comment: - !ruby/struct:SM::Flow::P body: The socket the Telnet object is using. Note that this object becomes a delegate of the Telnet object, so normally you invoke its methods directly on the Telnet object. name: sock rw: R class_methods: - !ruby/object:RI::MethodSummary name: new comment: - !ruby/struct:SM::Flow::H level: 2 text: Net::Telnet - !ruby/struct:SM::Flow::P body: Provides telnet client functionality. - !ruby/struct:SM::Flow::P body: This class also has, through delegation, all the methods of a socket object (by default, a <tt>TCPSocket</tt>, but can be set by the <tt>Proxy</tt> option to <tt>new()</tt>). This provides methods such as <tt>close()</tt> to end the session and <tt>sysread()</tt> to read data directly from the host, instead of via the <tt>waitfor()</tt> mechanism. Note that if you do use <tt>sysread()</tt> directly when in telnet mode, you should probably pass the output through <tt>preprocess()</tt> to extract telnet command sequences. - !ruby/struct:SM::Flow::H level: 2 text: Overview - !ruby/struct:SM::Flow::P body: "The telnet protocol allows a client to login remotely to a user account on a server and execute commands via a shell. The equivalent is done by creating a Net::Telnet class with the <tt>Host</tt> option set to your host, calling #login() with your user and password, issuing one or more #cmd() calls, and then calling #close() to end the session. The #waitfor(), #print(), #puts(), and #write() methods, which #cmd() is implemented on top of, are only needed if you are doing something more complicated." - !ruby/struct:SM::Flow::P body: "A Net::Telnet object can also be used to connect to non-telnet services, such as SMTP or HTTP. In this case, you normally want to provide the <tt>Port</tt> option to specify the port to connect to, and set the <tt>Telnetmode</tt> option to false to prevent the client from attempting to interpret telnet command sequences. Generally, #login() will not work with other protocols, and you have to handle authentication yourself." - !ruby/struct:SM::Flow::P body: "For some protocols, it will be possible to specify the <tt>Prompt</tt> option once when you create the Telnet object and use #cmd() calls; for others, you will have to specify the response sequence to look for as the Match option to every #cmd() call, or call #puts() and #waitfor() directly; for yet others, you will have to use #sysread() instead of #waitfor() and parse server responses yourself." - !ruby/struct:SM::Flow::P body: It is worth noting that when you create a new Net::Telnet object, you can supply a proxy IO channel via the Proxy option. This can be used to attach the Telnet object to other Telnet objects, to already open sockets, or to any read-write IO object. This can be useful, for instance, for setting up a test fixture for unit testing. - !ruby/struct:SM::Flow::H level: 2 text: Examples - !ruby/struct:SM::Flow::H level: 3 text: Log in and send a command, echoing all output to stdout - !ruby/struct:SM::Flow::VERB body: " localhost = Net::Telnet::new("Host" => "localhost",\n "Timeout" => 10,\n "Prompt" => /[$%#>] \\z/n)\n localhost.login("username", "password") { |c| print c }\n localhost.cmd("command") { |c| print c }\n localhost.close\n" - !ruby/struct:SM::Flow::H level: 3 text: Check a POP server to see if you have mail - !ruby/struct:SM::Flow::VERB body: " pop = Net::Telnet::new("Host" => "your_destination_host_here",\n "Port" => 110,\n "Telnetmode" => false,\n "Prompt" => /^+OK/n)\n pop.cmd("user " + "your_username_here") { |c| print c }\n pop.cmd("pass " + "your_password_here") { |c| print c }\n pop.cmd("list") { |c| print c }\n" - !ruby/struct:SM::Flow::H level: 2 text: References - !ruby/struct:SM::Flow::P body: There are a large number of RFCs relevant to the Telnet protocol. RFCs 854-861 define the base protocol. For a complete listing of relevant RFCs, see http://www.omnifarious.org/~hopper/technical/telnet-rfc.html constants: [] full_name: Net::Telnet includes: [] instance_methods: - !ruby/object:RI::MethodSummary name: binmode - !ruby/object:RI::MethodSummary name: binmode= - !ruby/object:RI::MethodSummary name: cmd - !ruby/object:RI::MethodSummary name: login - !ruby/object:RI::MethodSummary name: preprocess - !ruby/object:RI::MethodSummary name: print - !ruby/object:RI::MethodSummary name: puts - !ruby/object:RI::MethodSummary name: telnetmode - !ruby/object:RI::MethodSummary name: telnetmode= - !ruby/object:RI::MethodSummary name: waitfor - !ruby/object:RI::MethodSummary name: write name: Telnet superclass: SimpleDelegator