java写宽带连接.adsl拨号,并且检测断线自动重新连接,更换ip
生活随笔
收集整理的這篇文章主要介紹了
java写宽带连接.adsl拨号,并且检测断线自动重新连接,更换ip
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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);//再連,分配一個新的IPconnAdsl(name, username, password);}}
總結
以上是生活随笔為你收集整理的java写宽带连接.adsl拨号,并且检测断线自动重新连接,更换ip的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 湖北大学计算机系2020录取分数线,20
- 下一篇: matlab加限定条件,遗传算法求多元函