`

java实现动态切换上网IP (ADSL拨号上网) java开发

    博客分类:
  • java
阅读更多
动态切换IP的实现主是也由Windows的rasdial命令提供的,其实不是java的功劳,java只是调用一下bat脚本而已:

rasdial命令:



拨号
Java代码 复制代码

    语法: rasdial  连接名称 username password  
    实例: rasdial 我的宽带 hzhz1234567890 dfdfdfdfdf 

断网
Java代码 复制代码

    语法:rasdial  连接名称 /disconnect    
    实例: rasdial 宽带  /disconnect   




java程序调用rasdial命令:
Java代码 复制代码

    package com.sesame.network;  
     
    import java.io.BufferedReader;  
    import java.io.InputStreamReader;  
     
    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()));  
            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 void main(String[] args) throws Exception {  
            connAdsl("宽带","hzhz**********","******");  
            Thread.sleep(1000);  
            cutAdsl("宽带");  
            Thread.sleep(1000);  
            //再连,分配一个新的IP  
            connAdsl("宽带","hzhz**********","******");  
        }  
    } 




执行结果:
Java代码 复制代码

    正在建立连接.  
    已成功建立连接.  
    连接已断开  
    正在建立连接.  
    已成功建立连接. 




小结:
实现这个功能的最主要在于bat命令能支持这个功能,和以前写过的自动设置ip功能类似,这些功能实现java其实是很不方便的,看来要优雅的实现和windows操作系统相关的行为,学习windows编程才行。


LZ,你这没有重拨机制啦,这可不能确保每次都能成功连接上。
也许即使反复的重拨也未能连上,不知LZ是否碰到过。



我的代码只是展示功能。 如果你要重连功能的话,这样就可以了:

Java代码 复制代码

    while(!connAdsl("宽带","hzhz**********","******")){  
                  Thread.sleep(1000);  

分享到:
评论

相关推荐

    java 利用配处理脚本实现ADSL拨号

    Java是一种广泛使用的编程语言,它不仅用于开发复杂的服务器应用程序,还可以用于编写脚本,实现自动化任务,例如在Windows操作系统中进行ADSL拨号。ADSL(Asymmetric Digital Subscriber Line)是一种宽带接入技术...

    易语言ADSL拨号API

    易语言ADSL拨号API是针对ADSL(Asymmetric Digital Subscriber Line)拨号连接的一种编程接口,主要用于在易语言环境中实现ADSL的自动拨号、断线和连接状态管理等功能。这一API通常由一系列函数组成,允许开发者通过...

    ADSL拨号小精灵(自动更换IP)

    ADSL拨号小精灵简化了这一过程,让用户无需手动操作即可实现IP的自动切换。 描述中提到的“最好用的自动更换IP软件,不用安装,超级简单”,意味着这款软件不仅功能强大,而且易于使用。用户无需经过复杂的安装步骤...

    ADSL拨号上网配置

    ### ADSL拨号上网配置详解 ...通过上述步骤,不仅能够实现单机拨号上网,还能通过ADSL Modem和路由器轻松实现多用户共享上网,大大提高了网络资源的利用率。这种配置方法简单易行,适合家庭及小型办公环境使用。

    易语言恒信ADSL拨号

    在“易语言恒信ADSL拨号”这个项目中,我们主要探讨的是如何使用易语言来实现ADSL拨号功能。 ADSL(Asymmetric Digital Subscriber Line)非对称数字用户线,是一种广泛应用于家庭和小型企业的宽带接入技术。它通过...

    拨号软件 ADSL拨号

    综合以上信息,我们可以推测这是一个用于ADSL宽带连接的拨号软件,其特色在于能帮助用户频繁更换IP地址,尤其适用于需要大量IP资源的活动,如网络投票。软件的操作界面和具体功能细节未知,但通常这类软件会包括连接...

    圣者ADSL换IP拨号器

    【圣者ADSL换IP拨号器】是一款专为网络用户设计的软件工具,主要用于自动进行ADSL拨号,以实现IP地址的快速切换。在互联网世界中,IP地址是每个设备独一无二的标识,而ADSL(Asymmetric Digital Subscriber Line)是...

    圣者ADSL换IP拨号器.(免费版)

    【标签】包括"ADSL切换IP"、"ADSL拨号器"、"自动拨号器"、"自动换IP"以及"免费ADSL拨号器",这些标签清晰地定义了软件的主要功能。"ADSL切换IP"和"ADSL拨号器"表明这款软件可以处理ADSL网络环境下的IP地址更换;...

    ADSL拨号换ip工具(带说明).rar

    这是因为ADSL是一种动态IP分配方式,每次断开再连接时,ISP会分配新的IP。 2. 换IP需求:用户可能需要频繁更换IP,比如网络营销中避免被目标网站识别和限制,或者进行网络测试,模拟不同地区的访问情况。 3. 工具...

    易语言多线程adsl拨号演示例程

    使用这些接口,开发者可以编写出控制ADSL Modem进行拨号上网的程序。 精易模块是易语言的一个扩展库,它提供了大量的底层函数和组件,增强了易语言的功能,特别是在系统操作、网络通信、文件处理等方面。在这个ADSL...

    ADSL拨号上网加速补丁

    标题中的“ADSL拨号上网加速补丁”指的是针对ADSL(Asymmetric Digital Subscriber Line)宽带连接的一种优化工具。ADSL是一种广泛应用于家庭和小型企业的宽带接入技术,它利用现有的电话线基础设施提供高速数据传输...

    adsl-java.rar_ADSL Java_Java 自动拨号_java adsl

    在Java编程环境下,实现ADSL自动拨号和网页刷新功能是一项实用的技术,尤其对于网络自动化测试或者远程管理网络设备时非常有用。本篇将详细解析这个“adsl-java.rar”项目中的核心知识点。 首先,我们要了解Dial....

    USB ADSL 拨号上网 Linux 下

    在Linux系统中,使用USB ADSL拨号上网是一种常见的连接方式,尤其对于那些没有内置调制解调器或者想要在不同地点便捷上网的用户来说。本文将深入探讨如何在Linux环境下配置USB ADSL拨号上网,包括所需的技术背景、...

    dialup_src_bin.rar_ADSL拨号_delphi ip_delphi 拨号_ip

    通过学习这个项目的源代码,开发者可以学习如何在Delphi中进行网络编程,如何使用RAS API进行ADSL连接管理,如何设计用户界面以实现自动拨号和IP地址切换,以及如何记录和显示日志信息。对于初学者,这是一个了解...

    ADSL.rar_adsl 拨号_dial up in vb_拨号上网_自动拨号

    标题中的“ADSL.rar_adsl 拨号_dial up in vb_拨号上网_自动拨号”揭示了这个压缩包文件的内容主要涉及ADSL(Asymmetric Digital Subscriber Line)拨号上网技术,以及如何在Visual Basic (VB)环境中实现自动拨号的...

    利用Win2003中的NAT实现基于ADSL拨号上网(家庭用户)教程

    在本文中,我们将深入探讨如何在Windows Server 2003 (Win2003) 操作系统中利用网络地址转换(NAT)技术来实现家庭用户基于ADSL(Asymmetric Digital Subscriber Line)拨号上网的教程。首先,我们需要了解NAT的基本...

    易语言源码易语言恒信ADSL拨号源码.rar

    3. **ADSL拨号**:ADSL(Asymmetric Digital Subscriber Line)是非对称数字用户线技术,是宽带上网的一种方式。ADSL拨号是指通过ADSL调制解调器连接到Internet服务提供商(ISP)的过程,用户需要输入用户名和密码进行...

    易语言ADSL拨号API源码

    易语言ADSL拨号API源码是针对网络连接的一种编程实现,主要应用于Windows操作系统环境,通过调用系统API(Application Programming Interface)实现ADSL拨号功能。易语言是中国本土开发的一种简单易学的编程语言,它...

    adsl 拨号获取宽带账号密码

    本文将深入探讨ADSL拨号的工作原理,以及如何在C++环境下编写程序来实现这一功能。 ADSL拨号的工作流程主要包括以下几个步骤: 1. **初始化**:用户端的ADSL Modem与服务提供商的DSLAM(Digital Subscriber Line ...

    易语言多线程adsl宽带拨号源码

    在标题中提到的“易语言多线程adsl宽带拨号源码”是一个使用易语言编写的程序,该程序实现了多线程环境下ADSL(Asymmetric Digital Subscriber Line)宽带的拨号功能。在多线程编程中,每个线程可以独立执行不同的...

Global site tag (gtag.js) - Google Analytics