zoukankan      html  css  js  c++  java
  • (转)JAVA实现Windows拨号、IP切换

    原理:

           通过调用windows下的dos命令实现拨号

    PS:连接名称获取不一定都是适用,但苦于知道的dos命令太少了,只能将就这么用着。

          如有更好的方法,烦请不吝赐教。

    public class ConnectNetWork {

    public static void main(String[] args) throws Exception {
    String adslTitle = getConnectName();
    String adslName = "************";
    String adslPsw = "*******";

    connAdsl(adslTitle, adslName, adslPsw);
    Thread.sleep(1000);
    disconectAdsl(adslTitle);
    Thread.sleep(1000);
    connAdsl(adslTitle, adslName, adslPsw); // 再连,分配一个新的IP
    }


    private static String executeCmd(String str) throws Exception {
    Process p = Runtime.getRuntime().exec("cmd /c " + str);
    StringBuilder sb = new StringBuilder();
    BufferedReader br = new BufferedReader(new InputStreamReader(
    p.getInputStream(), "gbk"));

    String line=null;
    while ((line = br.readLine()) != null) {
    sb.append(line + " ");
    }
    p.destroy();
    return sb.toString();
    }

    private static boolean connAdsl(String adslTitle, String adslName,
    String adslPsw) throws Exception {

    String adslCmd = "rasdial " + adslTitle + " " + adslName + " "
    + adslPsw;
    String tempCmd = executeCmd(adslCmd);

    // 判断连接是否成功
    if (tempCmd.indexOf("已连接") > 0 || tempCmd.indexOf("已经连接") > 0) {
    System.out.println("已成功建立连接.");
    return true;
    } else {
    System.err.println(tempCmd);
    return false;
    }
    }

    private static boolean disconectAdsl(String adslTitle) throws Exception {
    String cutAdsl = "rasdial " + adslTitle + " /disconnect";
    String result = executeCmd(cutAdsl);

    if (result.indexOf("没有连接") != -1) {
    System.err.println(adslTitle + "连接不存在!");
    return false;
    } else {
    System.out.println("连接已断开");
    return true;
    }
    }

    private static String getConnectName() throws Exception {
    String reponse = executeCmd("ipconfig /all");
    String temp ="描述. . . . . . . . . . . . . . . :";
    int begin = reponse.indexOf(temp)+temp.length();
    int last = begin+5;
    return reponse.substring(begin,last);//返回名称
    }
    }

      

           

  • 相关阅读:
    (转)elasticsearch collapse 折叠字段应用
    java 8 supplier object区别
    搜索 rerank : learn to rank 算法
    Runtime.addShutdownHook用法
    MAT(memory anlayzer tool)使用方法
    win10 打开注册表
    关于svn 更新到本地库 图标不显示问题(二)
    如何重启explorer,不用重启电脑 也能使设置生效
    关于svn 更新到本地库 图标不显示问题(一)
    eclipse 编写完JAVA的代码 ctrl+s保存一下,右下角就有building workspace一直在执行。。特别卡、卡、、
  • 原文地址:https://www.cnblogs.com/iRoad/p/4047276.html
Copyright © 2011-2022 走看看