<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java通過SSH連接路由器,輸入命令并讀取響應

      最近需要讀取和修改華為路由器的配置,使用Java語言開發,通過SSH連接,輸入命令并讀取響應。

      1.添加mwiede/jsch依賴

      • 如果使用Maven,可以在pom.xml文件中添加以下依賴:
      <dependencies>
          <dependency>
              <groupId>com.github.mwiede</groupId>
              <artifactId>jsch</artifactId>
              <version>0.2.15</version>
          </dependency>
      </dependencies>
      
      • 如果使用Gradle,則添加到build.gradle文件:
      dependencies {
          implementation 'com.github.mwiede:jsch:0.2.15'
      }
      

      2.使用Jsch創建SSH連接,輸入命令并返回響應

      /** 
      *  獲取SSH命令響應
      * @param userName        用戶名
      * @param password        密碼
      * @param host              ip地址
      * @param port              端口
      * @param commandList  命令列表
      */
      public String getShellCmdRes(String userName, String password, String host, Integer port, List<String> commandList) throws JSchException, IOException {
              StringBuilder stringBuilder = new StringBuilder();
              JSch jsch = new JSch();
              Session session = jsch.getSession(userName, host, port());
              session.setPassword(password);
              session.setConfig("StrictHostKeyChecking", "no");
              session.connect();
      
              ChannelShell channel = (ChannelShell) session.openChannel("shell");
      
              // 獲取輸入輸出流
              OutputStream inputStreamForTheChannel = channel.getOutputStream();
              InputStream outputStreamForTheChannel = channel.getInputStream();
      
              // 連接通道
              channel.connect();
      
              PrintStream commander = new PrintStream(inputStreamForTheChannel, true);
      
              byte[] tmp = new byte[1024];
              while (true) {
                  while (outputStreamForTheChannel.available() > 0) {
                      int i = outputStreamForTheChannel.read(tmp, 0, 1024);
                      if (i < 0) {
                          break;
                      }
                      String output = new String(tmp, 0, i);
                      // 讀取響應
                      stringBuilder.append(output);
                      stringBuilder.append(System.lineSeparator());
                      // 發送命令
                      commandList.forEach(command -> {
                          commander.println(command);
                      });
                  }
                  if (channel.isClosed()) {
                      if (outputStreamForTheChannel.available() > 0) {
                          continue;
                      }
                      break;
                  }
                  try {
                      Thread.sleep(10);
                  } catch (Exception ee) {
                  }
              }
      
              // 關閉通道和會話
              channel.disconnect();
              session.disconnect();
              return stringBuilder.toString();
          }
      

      3.調用上文方法

      3.1 單條命令

      記得結束時加入退出語句,這里以路由器為例,用quit退出

      List<String> commandList = new  ArrayList<>();
      // 查看
      commandList.add("display bfd session all");
      // 退出會話
      commandList.add("quit");
      // 獲取響應
      String response = getShellCmdRes("admin", "admin", "1.1.1.1", 22, commandList);
      

      image

      3.2 多條命令

      如果是多條命令,每進入一個會話,就多一個退出語句

      List<String> commandList = new ArrayList<>();
      // 進入system-view
      commandList.add("system-view");
      // 進入Tunnel 0/0/5
      commandList.add("interface Tunnel 0/0/5");
      // 查看信息
      commandList.add("display this");
      // 退出Tunnel 0/0/5
      commandList.add("quit");
      // 退出system-view
      commandList.add("quit");
      // 退出會話
      commandList.add("quit");
      // 獲取響應
      String response = getShellCmdRes("admin", "admin", "1.1.1.1", 22, commandList);
      

      image

      posted @ 2024-01-11 13:56  張曉風  閱讀(673)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品日韩av一区二区| 老色99久久九九爱精品| 欧美亚洲国产日韩一区二区| 壤塘县| 日本污视频在线观看| 极品蜜臀黄色在线观看| 日韩亚av无码一区二区三区| 国产麻豆成人传媒免费观看| 北宁市| 国产精品国产亚洲看不卡| 久久精品丝袜高跟鞋| 亚洲国产成人综合精品| 亚洲人成网网址在线看| 成人av午夜在线观看| 91密桃精品国产91久久| 蜜桃视频网站| 国产精品国产三级国快看| 成年午夜性影院| 亚洲精品久久久久国色天香| 久久综合色之久久综合| 国产成人av三级在线观看| 国内少妇偷人精品免费| 中文人妻av高清一区二区| 国产一区二区三区激情视频| 亚洲精品无码成人aaa片| 天天躁日日躁狠狠躁一区| 综合激情亚洲丁香社区| 中文字幕在线无码一区二区三区| 隔壁老王国产在线精品| 亚洲人成电影在线天堂色| 国产午夜精品视频在线播放 | 手机看片日本在线观看视频| 欧美人与禽2o2o性论交| 少妇爽到呻吟的视频| 久久国产精品夜色| 国产精品无码无片在线观看3d| 国产资源精品中文字幕| 噜噜噜噜私人影院| 中文字幕精品亚洲字幕成| 国产精品久久人妻无码网站一区 | 久久精品国产91久久麻豆|