package com.hua;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.Scanner;public class ConnectNetWork {/** * 執行CMD命令,並返回String字串 */public static String executeCmd(String strCmd) throws Exception {Process p = Runtime.getRuntime().exec("cmd /c " + strCmd);StringBuilder sbCmd = new StringBuilder();BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream(), "GB2312"));String line;while ((line = br.readLine()) != null) {sbCmd.append(line + "\n");}return sbCmd.toString();}/** * 串連ADSL */public static boolean connAdsl(String adslTitle, String adslName, String adslPass) throws Exception {System.out.println("正在建立串連.");String adslCmd = "rasdial " + adslTitle + " " + adslName + " " + adslPass;String tempCmd = executeCmd(adslCmd);// 判斷是否串連成功if (tempCmd.indexOf("已串連") > 0) {System.out.println("已成功建立串連.");return true;} else {System.err.println(tempCmd);System.err.println("建立串連失敗");return false;}}/** * 斷開ADSL */public static boolean cutAdsl(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 boolean isConnect(){ boolean connect = false; Runtime runtime = Runtime.getRuntime(); Process process; try { process = runtime.exec("ping " + "www.baidu.com"); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line = null; StringBuffer sb = new StringBuffer(); while ((line = br.readLine()) != null) { sb.append(line); } System.out.println("傳回值為:"+sb); is.close(); isr.close(); br.close(); if (null != sb && !sb.toString().equals("")) { String logString = ""; if (sb.toString().indexOf("TTL") > 0) { // 網路暢通 connect = true; } else { // 網路不暢通 connect = false; } } } catch (IOException e) { e.printStackTrace(); } return connect; } //測試代碼public static void main(String[] args) throws InterruptedException, Exception { Scanner sc = new Scanner(System.in); System.out.println("寬頻連線名稱:"); //看你寬頻連線的名稱 String name = sc.next(); System.out.println("寬頻賬戶:"); String username = sc.next(); System.out.println("寬頻密碼:"); String password = sc.next(); String adsl= "寬頻連線"; while(true){ boolean connect = isConnect(); Thread.sleep(100000);//單位毫秒,我設定的是100秒.自己看情況更改 if(!connect){ System.out.println("無網路,正在重新撥號"); connAdsl(name,username,password); } } }}
/** * 自動更換ip * */
public void changeIp() throws Exception{ Scanner sc = new Scanner(System.in); System.out.println("寬頻連線名稱:"); // 看你寬頻連線的名稱 String name = sc.next(); System.out.println("寬頻賬戶:"); String username = sc.next(); System.out.println("寬頻密碼:"); String password = sc.next(); System.out.println("更換時間(單位毫秒1秒等於1000毫秒):"); int wait = sc.nextInt(); while(true){ connAdsl(name, username, password); Thread.sleep(wait); cutAdsl(name); Thread.sleep(wait); //再連,分配一個新的IP connAdsl(name, username, password); } }