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);//返回名称
    }
    }

      

           

  • 相关阅读:
    回到顶部
    angularjs 复选框 单选框
    关于angularjs的ng-repeat指令
    JS字符串对象
    JS的控制语句与异常
    JS的运算符
    JS的引入方式和基础规范
    z-index及透明度opacity,利用overflow设置头像
    css的定位
    css的float属性及清除浮动
  • 原文地址:https://www.cnblogs.com/iRoad/p/4047276.html
Copyright © 2011-2022 走看看