telnet登陆是使用指令登陆的,登陆指令为: LGI:OP="用户名",PWD="密码";java这边我使用的是TelnetClient这个类登陆到telnet代码块如下:
连接网元,发送登陆指令代码块
TelnetSessionIntf telnetSession; //Spring注入
telnetSession.connect();// 连接网元
logger.info("数据源:" + dsTask.getDataSource().getName() + ",登录成功.......");
String order="LGI:OP=\"用户名\",PWD=\"密码\"; ";
String hostInfo = telnetSession.sendCommand(order);
logger.info("order:[{}] hostInfo:[{}]",order,hostInfo);
TelnetSessionImpl实现类
private TelnetClient telnetClient = null;
private InputStream in;
private OutputStream out;
public void connect() throws SessionException {
telnetClient.connect(getHost(), getPort());
in = telnetClient.getInputStream();
out = telnetClient.getOutputStream();
}
public String sendCommand(String cmd)
{
send(cmd,true);
String tmpResult = null;
tmpResult = waitFor(prompt, env.isCommandRegex());//获得结果
return tmpResult;
}
private void send(String order) throws IOException {
byte[] sendB;
sendB= order.getBytes();
if(sendB.length > 0) {
out.write(sendB,0,sendB.length);
out.flush();
}
}
运行日记显示如下
[2018-12-14 10:14:28| INFO|datasource-task-28|com.eastcom.udap.adapter.terminal.processor.TerminalDataSourceTaskProcessor.doProcess:30] 数据源:Test,登录成功.......
[2018-12-14 10:14:28| INFO|datasource-task-28|com.eastcom.udap.adapter.terminal.processor.TerminalDataSourceTaskProcessor.doProcess:33] order:[LGI:OP="用户名",PWD="密码"; ]
hostInfo:[+++ CGP/*MEID:0 MENAME:站点管理*/ 2018-12-14 10:14:28+08:00
O&M #197242
%%LGI:OP="用户名",PWD="密码";%%
RETCODE = 483011 未登陆,请先登陆
--- END
]
但是使用linux连接就能成功,如下图
请问各位大神,telnet登陆方式是口令登陆的,用java怎么登陆呢?