another-telnet-client v0.1.3
another-telnet-client
A simple Node.Js telnet client with some extra features like support for the 'enable' command usually found on Cisco equipment.
Installation
Locally in your project or globally:
npm install another-telnet-client
npm install -g another-telnet-client
Example usage
var telnet = require('another-telnet-client');
var connection = new telnet();
var params = {
host: '127.0.0.1',
port: 23,
shellPrompt: '/ # ',
timeout: 1500
};
connection.on('ready', function(prompt) {
connection.exec(cmd, function(response) {
console.log(response);
});
});
connection.on('timeout', function() {
console.log('socket timeout!')
connection.end();
});
connection.on('close', function() {
console.log('connection closed');
});
connection.connect(params);
API
var telnet = require('another-telnet-client');
var connection = new telnet();
connection.connect(options)
Creates a new TCP connection to the specified host, where 'options' is an object which can include following properties:
- host: Host the client should connect to. Defaults to 'localhost'.
- port: Port the client should connect to. Defaults to '23'.
- timeout: Sets the socket to timeout after the specified number of milliseconds of inactivity on the socket.
- shellPrompt: Shell prompt that the host is using. Defaults to regex '/(?:\/ )?#\s/'.
- loginPrompt: Username/login prompt that the host is using. Defaults to regex '/login: *$/i'.
- username: Username used to login. Defaults to 'root'.
- password: Password for the login username. Defaults to 'guest'.
- passwordPrompt: The prompt that comes after the username. Defaults to regex '/Password: /i'.
- enable: For devices (like Cisco equipment) that require "enable" for elevated permissions. Defaults to false.
- enablePassword: Password for the enable command. Defaults to 'enablepass'.
- enablePrompt: The prompt that appears when enable is used. Defaults to regex '/Password: /i'.
- irs: Input record separator. A separator used to distinguish between lines of the response. Defaults to '\r\n'.
- ors: Output record separator. A separator used to execute commands (break lines on input). Defaults to '\n'.
- echoLines: The number of lines used to cut off the response. Defaults to 1.
- pageSeparator: The pattern used to break the number of lines on output. Defaults to '---- More'.
connection.exec(data, options, callback)
Sends data on the socket (should be a compatible remote host's command if sane information is wanted). The optional callback parameter will be executed when the data is finally written out - this may not be immediately. Command result will be passed as the first argument to the callback.
Options:
- shellPrompt: Shell prompt that the host is using. Defaults to regex '/(?:\/ )?#\s/'.
- loginPrompt: Username/login prompt that the host is using. Defaults to regex '/login: *$/i'.
- timeout: Sets the socket to timeout after the specified number of milliseconds of inactivity on the socket.
- irs: Input record separator. A separator used to distinguish between lines of the response. Defaults to '\r\n'.
- ors: Output record separator. A separator used to execute commands (break lines on input). Defaults to '\n'.
- echoLines: The number of lines used to cut off the response. Defaults to 1.
connection.end()
Half-closes the socket. i.e., it sends a FIN packet. It is possible the server will still send some data.
connection.destroy()
Ensures that no more I/O activity happens on this socket. Only necessary in case of errors (parse error or so).
Event: 'connect'
Emitted when a socket connection is successfully established.
Event: 'ready'
Emitted when a socket connection is successfully established and the client is successfully connected to the specified remote host. A value of prompt is passed as the first argument to the callback.
Event: 'writedone'
Emitted when the write of given data is sent to the socket.
Event: 'timeout'
Emitted if the socket times out from inactivity. This is only to notify that the socket has been idle. The user must manually close the connection.
Event: 'error'
Emitted when an error occurs. The 'close' event will be called directly following this event.
Event: 'end'
Emitted when the other end of the socket (remote host) sends a FIN packet.
Event: 'close'
Emitted once the socket is fully closed.