使用Java代码实现对宽带的连接

时间:2021-07-10 10:06:02

对于多个类似的用户名相同的密码,运行java代码实现对宽带的自动连接

这是源代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 * 联网神器
 * Process 进程类
 * 		         本机窗口进程,守护进程,Microsoft Windows 上的 Win16/DOS 进程,
 *         或者 shell 脚本。
 *
 * Runtime 每个 Java 应用程序都有一个 Runtime 类实例,
 *         使应用程序能够与其运行的环境相连接。
 *         可以通过 getRuntime 方法获取当前运行时。
 * @author Dante Fung
 *
 */
public class NetConnector
{
	public void connect(int no)
	{
		// 查看ip
//		String[] cmd = {"cmd.exe","/C","ipconfig"};
//		String cmd = "cmd.exe /C ipconfig";
		// 拨号联网
//		String[] cmd = {"cmd.exe","/C","rasdial 宽带连接  "};
		String cmd = "cmd.exe /c rasdial 宽带连接 lixueyuan0" + no + " 123456";
		int exitValue = createProcess(cmd);
        if( exitValue == 0)
        {
        	System.out.println("拨号成功!!");
        }
        else
        {
        	System.err.println("exit value=" + exitValue);
        }

	}

	public int createProcess(String cmd)
	{
		Process process = null;
		 try
	        {
		    	// 创建一个本机进程
		        process = Runtime.getRuntime().exec(cmd);
	        }
	        catch (IOException e)
	        {
		        e.printStackTrace();
		        throw new RuntimeException(e);
	        }
		    // 获取子进程的输入流 :实现注意事项:对输入流进行缓冲是一个好主意。
		    InputStream in = process.getInputStream();
		    // 字节字符转换流
		    InputStreamReader isr = new InputStreamReader(in);
		    // 增加字符缓冲能力
		    BufferedReader br = new BufferedReader(isr);

		    String line;
		    try
	        {
		        while((line = br.readLine()) != null)
		        {
		        	System.out.println(line);
		        }

		        // 0 表示正常终止
		        int exitValue = process.waitFor();
		        System.out.println(exitValue);
		        return exitValue;
	        }
	        catch (Exception e)
	        {
		        e.printStackTrace();
		        throw new RuntimeException(e);
	        }
		    finally
		    {
		    	// 关闭资源
		    	try
	            {
		            br.close();
		            process.getOutputStream().close();
		            in.close();
		            isr.close();
	            }
	            catch (IOException e)
	            {
		            e.printStackTrace();
		            throw new RuntimeException(e);
	            }
		    }
	}

	public boolean ping()
	{
		Process process = null;
		// ping
		String ping = "cmd.exe /c ping www.baidu.com -n 1";
		// 断开网络连接
		String disconn = "cmd.exe /c rasdial /DISCONNECT";
		int exitValue = createProcess(ping);
		if(exitValue == 0)
		{
			System.out.println("联网成功!!");
			return true;
		}
		else
		{
			System.err.println("联网失败!正在断开连接...");
			int exitCode = createProcess(disconn);
			if(exitCode == 0)
			{
				System.out.println("断开连接成功!!");
			}
			return false;
		}
	}

	public static void main(String[] args)
    {

	    NetConnector connector = new NetConnector();
	    for(int i = 10; i < 61; i ++)
	    {
	    	connector.connect(i);
	    	if(connector.ping())
	    	{
	    		break;
	    	}
	    	System.out.println("正在重新尝试连接...");
	    	System.out.println("==========第" + i + "次 拨号连接===========");
	    }
    }
}

使用Java代码实现对宽带的连接的更多相关文章

  1. mongodb3&period;0分片及java代码连接操作测试(开启用户验证)

    最近抽时间搭建了一下mongodb简单的分片,整个过程还算是蛮顺利,只不过在用户验证这一块遇到了一些问题,好在最后终于搞定. 一.服务器搭建过程: 1.安装四个mongodb:一个作为config.一 ...

  2. 用JAVA代码获取Weblogic配置的JNDI 数据源连接

    第一步:生成与JDK版本对应的weblogicjar,利用cmd 进入到weblogic_home 路径下进入到server/lib目录,然后运行  JDK  1.6 命令 "java -j ...

  3. zookeeper - 通过java代码连接zookeeper&lpar;2&rpar;

    首先创建一个Maven项目 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  4. 第3节 sqoop:7、通过java代码远程连接linux执行shell命令

    数据库的数据同步软件sqoop 数据同步 关系型数据库到大数据平台 任务:sqoop 是批量导入数据太慢,如何做到实时的数据同步 实时的数据同步工具: canal 阿里开源的一个数据库数据实时同步的软 ...

  5. JNDI实现服务器&lpar;tomcat&rpar;与数据库&lpar;mysql&rpar;连接的数据源配置以及获取连接的java代码

    ->首先将mysql的jar包导入到tomcat/lib文件夹下 ->然后在tomcat/conf/context.xml文件中配置以下内容 <Resource name=&quot ...

  6. mysql数据库的连接以及增删改查Java代码实现(转载)

    每天叫醒自己的不是闹钟,而是梦想 数据库: create table t1(id int primary key not null auto_increment,name varchar(32),pa ...

  7. 远程debug调试java代码

    远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...

  8. 几种简单的负载均衡算法及其Java代码实现

    什么是负载均衡 负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助.通过某种负载分担技 ...

  9. kettle 使用JAVA代码进行执行

    kettle 设计完成之后,可以在设计工具中进行调用,也可以使用java代码进行调用.   1.通过文件方式执行转换.   public static void runTransfer(String[ ...

随机推荐

  1. oracle表分区以及普表转分区表(转)

    概述 Oracle的表分区功能通过改善可管理性.性能和可用性,从而为各式应用程序带来了极大的好处.通常,分区可以使某些查询以及维护操作的性能大大提高.此外,分区还可以极大简化常见的管理任务,分区是构建 ...

  2. winston日志管理1

    Usage There are two different ways to use winston: directly via the default logger, or by instantiat ...

  3. 数组工具类 - ArrayUtil&period;java

    数组工具类,提供数组.对象之间转换的方法. 源码如下:(点击下载 - ArrayUtil.java .commons-lang-2.6.jar) import java.lang.reflect.Ar ...

  4. 如何正确学习JavaScript

    不要这样学习JavaScript 不要一开始就埋头在成堆的JavaScript在线教程里 ,这是最糟糕的学习方法.或许在看过无数个教程后会有点成效,但这样不分层次结构地学习一个东西实在是十分低效,在实 ...

  5. information&lowbar;schema&period;collation&lowbar;character&lowbar;set&lowbar;applicability 学习

    字符集和排序规则之间是不可以随便搭配的.如果你想知道一个字符集它所搭配的排序规则有哪些?那就可以从information_schema.collation_character_set_applicab ...

  6. 简单工厂设计模式&lpar;Simple Factory Design Pattern&rpar;

    [引言]最近在Youtub上面看到一个讲解.net设计模式的视频,其中作者的一个理解让我印象很深刻:所谓的设计模式其实就是运用面向对象编程的思想来解决平时代码中的紧耦合,低扩展的问题.另外一点比较有见 ...

  7. 【JVM命令系列】jmap

    命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.打印出某个java进程(使用pid)内存内的,所有'对象'的情况(如:产生那些对象,及其数量 ...

  8. python之testcenter操作

    一.设置python环境 1. 从以下路径中将StcPython.py文件拷贝出来 Linux: /Installdir/Spirent_TestCenter_4.xx/Spirent_TestCen ...

  9. Linux 第十五天

    2)环境变量:这种变量中主要保存的是和系统操作环境相关的数据. export 变量名=变量值    设置环境变量 env                     查询变量 unset变量名       ...

  10. MySQL高可用之组复制技术&lpar;3&rpar;:配置多主模型的组复制

    MySQL组复制系列文章: MySQL组复制大纲 MySQL组复制(1):组复制技术简介 MySQL组复制(2):配置单主模型的组复制 MySQL组复制(3):配置多主模型的组复制 MySQL组复制( ...