Jsch ssh with edittext android
Jsch ssh with edittext android
你好,我有一个问题,我使用 jsch 通过 ssh 连接到例如一台设备我的代码工作但它使用集成的用户名、密码和主机我想创建 activity 在那里写用户名密码和主机然后连接并执行一些命令,例如 "reboot"...当我在 edittext 字段中输入 ip adpress 时,从那里获取数据而不是固定的 ip,我想你可以理解我,对不起我的英语不好 :) 这是我的代码 >>
Activity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ssh);
Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.inflateMenu(R.menu.main_menu);
setSupportActionBar(mToolbar);
}
@SuppressLint("StaticFieldLeak")
public void onClick11 (View v) {
new AsyncTask<Integer, Void, Void>(){
@Override
protected Void doInBackground(Integer... params) {
try {
executeSSHcommand();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(1);
}
@SuppressLint("StaticFieldLeak")
public void onClickct (View v) {
new AsyncTask<Integer, Void, Void>(){
@Override
protected Void doInBackground(Integer... params) {
try {
Compliancetest();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(1);
}
public void executeSSHcommand(){
String user = "user";
String password = "user";
String host = "192.168.1.1";
int port=22;
try{
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.setTimeout(10000);
session.connect();
ChannelExec channel = (ChannelExec)session.openChannel("exec");
channel.setCommand("reboot");
channel.connect();
channel.disconnect();
}
catch(JSchException e){
}
}
public void Compliancetest(){
String user = "user";
String password = "user";
String host = "192.168.1.1";
int port=22;
try{
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.setTimeout(10000);
session.connect();
ChannelExec channel = (ChannelExec)session.openChannel("exec");
channel.setCommand("reboot");
channel.connect();
channel.disconnect();
}
catch(JSchException e){
}
}
和我的 activity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar">
</include>
<EditText
android:id="@+id/ip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:hint="IP Address" />
<EditText
android:id="@+id/uname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:hint="Username" />
<EditText
android:id="@+id/pw"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword"
android:hint="Password" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:onClick="onClick11"
android:text="@string/command" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:onClick="onCommand"
android:text="@string/reboot" />
例如让我们谈谈从 :
获取 ip
String ipName;
EditText ip =findViewById(R.id.ip);
ipName = ip.getText();
放在bottom.onclicklistener编辑文字填好后做
你好,我有一个问题,我使用 jsch 通过 ssh 连接到例如一台设备我的代码工作但它使用集成的用户名、密码和主机我想创建 activity 在那里写用户名密码和主机然后连接并执行一些命令,例如 "reboot"...当我在 edittext 字段中输入 ip adpress 时,从那里获取数据而不是固定的 ip,我想你可以理解我,对不起我的英语不好 :) 这是我的代码 >>
Activity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ssh);
Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.inflateMenu(R.menu.main_menu);
setSupportActionBar(mToolbar);
}
@SuppressLint("StaticFieldLeak")
public void onClick11 (View v) {
new AsyncTask<Integer, Void, Void>(){
@Override
protected Void doInBackground(Integer... params) {
try {
executeSSHcommand();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(1);
}
@SuppressLint("StaticFieldLeak")
public void onClickct (View v) {
new AsyncTask<Integer, Void, Void>(){
@Override
protected Void doInBackground(Integer... params) {
try {
Compliancetest();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(1);
}
public void executeSSHcommand(){
String user = "user";
String password = "user";
String host = "192.168.1.1";
int port=22;
try{
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.setTimeout(10000);
session.connect();
ChannelExec channel = (ChannelExec)session.openChannel("exec");
channel.setCommand("reboot");
channel.connect();
channel.disconnect();
}
catch(JSchException e){
}
}
public void Compliancetest(){
String user = "user";
String password = "user";
String host = "192.168.1.1";
int port=22;
try{
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.setTimeout(10000);
session.connect();
ChannelExec channel = (ChannelExec)session.openChannel("exec");
channel.setCommand("reboot");
channel.connect();
channel.disconnect();
}
catch(JSchException e){
}
}
和我的 activity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar">
</include>
<EditText
android:id="@+id/ip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:hint="IP Address" />
<EditText
android:id="@+id/uname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:hint="Username" />
<EditText
android:id="@+id/pw"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword"
android:hint="Password" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:onClick="onClick11"
android:text="@string/command" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:onClick="onCommand"
android:text="@string/reboot" />
例如让我们谈谈从 :
获取 ipString ipName;
EditText ip =findViewById(R.id.ip);
ipName = ip.getText();
放在bottom.onclicklistener编辑文字填好后做