在网络设置里,把拨号上网的连接名字改成adslGo即可。 想换ip时,调用changeip方法或changeipNow
adslUtil.java
package com.xxx.util;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader;
public class AdslUtil {
/** * 上次重启时间(毫秒数). */ static long lastTime = System.currentTimeMillis();
/** * 执行CMD命令,并返回String字符串 */ public static String executeCmd(String strCmd) throws Exception { Process p = Runtime.getRuntime().exec("cmd /c " + strCmd); p.waitFor(); 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); System.out.println(tempCmd); // 判断是否连接成功 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); System.out.println(result); 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 " + "126.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("")) {
if (sb.toString().indexOf("TTL") > 0) { // 网络畅通 connect = true; } else { // 网络不畅通 connect = false; } } } catch (IOException e) { e.printStackTrace(); } return connect; }
/** * 换IP地址(间隔指定的分钟数换一次). * * @return */ public static boolean changeIp() {
// 几分钟换一次IP int second = Integer.valueOf(ConfigUtils.getString("adslSecond")); long curr = System.currentTimeMillis(); if (curr - lastTime < 60000 * second) { return true; }
try {
// 断线 System.out.println("to offline."); cutAdsl("adslGo");
// 重连 System.out.println("to online.."); boolean ok = connAdsl("adslGo", ConfigUtils.getString("adslUser"), ConfigUtils.getString("adslPwd")); int count=0; while (!ok) { count++; System.out.println("fail,retry " + count); Thread.sleep(2000); ok = connAdsl("adslGo", ConfigUtils.getString("adslUser"), ConfigUtils.getString("adslPwd")); } System.out.println("online OK.");
lastTime = System.currentTimeMillis(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 立刻换IP地址. * * @return */ public static boolean changeIpNow() {
try {
// 断线 System.out.println("to offline."); cutAdsl("adslGo");
// 重连 System.out.println("to online.."); boolean ok = connAdsl("adslGo", ConfigUtils.getString("adslUser"), ConfigUtils.getString("adslPwd")); int count=0; while (!ok) { count++; System.out.println("fail,retry " + count); Thread.sleep(2000); ok = connAdsl("adslGo", ConfigUtils.getString("adslUser"), ConfigUtils.getString("adslPwd")); } System.out.println("online OK."); lastTime = System.currentTimeMillis(); return true; } catch (Exception e) { e.printStackTrace(); return false; } }
// 测试代码 public static void main(String[] args) throws InterruptedException { if (args.length != 2) { System.out.println("java ConnectNetWork uuu ppp"); return; } System.out.println("user:" + args[0]); System.out.println("pass:" + args[1]);
//while (true) { try { System.out.println("to offline."); cutAdsl("adslGo");
System.out.println("to online.."); connAdsl("adslGo", args[0], args[1]); } catch (Exception e) { e.printStackTrace(); }
//Thread.sleep(60000); //System.out.println("to changeIp.."); //}
} }
|