原理:
通过调用windows下的dos命令实现拨号
public class ConnectNetWork { public 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 + "\n"); } return sb.toString(); } public 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; } } public 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; } } public static void main(String[] args) throws Exception { String adslTitle = "宽带连接"; String adslName = "*************"; String adslPsw = "******"; connAdsl(adslTitle, adslName, adslPsw); Thread.sleep(1000); disconectAdsl(adslTitle); Thread.sleep(1000); connAdsl(adslTitle, adslName, adslPsw); // 再连,分配一个新的IP } }
时间: 2024-11-04 11:35:36