黑洞HTTP

黑洞HTTP

您的位置: 首页 > 新闻资讯 > HTTP代理 > 正文

java实现动态切换上网IP

发布时间:2019年04月10日 来源:http://http.hunbovps.com/News/getList/catid/8/id/281.html

动态切换IP的实现主是也由Windows的rasdial命令提供的,其实不是java的功劳,java只是调用一下bat脚本而已:


java实现动态切换上网IP

rasdial命令:


拨号


Java代码 :


1. 语法: rasdial  连接名称 username password   


2.实例rasdial 我的宽带 hzhz1234567890 dfdfdfdfdf  


断网


Java代码 


1. 语法:rasdial  连接名称 /disconnect     


2. 实例: rasdial 宽带  /disconnect    


java程序调用rasdial命令:(其中读取CMD返回消息时可能会乱码,注意红色字体那一句的编码设置)


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(),"GB2312"));  //这里很重要,设置GB2312解决乱码!!!

                             //如果程序默认编码就是GB2312,可以不写

                             //我NetBeans默认用UTF8




       String line;

        while ((line = br.readLine()) != null) {

            sbCmd.append(line + "\n");

        }

        return sbCmd.toString();


    //如果整个过程换成这样,就更清楚了。getInputStream是获取最原始的字节流,

    //cmd返回的是以GB2312双字节编码的字节流

    InputStream in = p.getInputStream();

    byte[] b = new byte[1000];

    in.read(b);

    String msg = new String(b,"GB2312");  //用GB2312解释这堆字节,就可以组装成一个正常的String了

                         //如果上边不写GB2312,等于这里用UTF8组装,结果一样

    }


    /**

     * 连接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代码

1. 正在建立连接.   

2. 已成功建立连接.   

3. 连接已断开   

4. 正在建立连接.   

5. 已成功建立连接.  


 小结:

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


相关文章内容简介

1 java实现动态切换上网IP

动态切换IP的实现主是也由Windows的rasdial命令提供的,其实不是java的功劳,java只是调用一下bat脚本而已:rasdial命令:拨号Java代码 :1. 语法: rasdial  连接名称 username password   2.实例rasdial 我的宽带 hzhz1234567890 dfdfdfdfdf  断网Java代码 1. 语法:rasdial  连接名称 /disconnect     2. 实例: rasdial 宽带  /disconnect    java程序调用rasdial命令:(其中读取CMD返回消息时可能会乱码,注意红色字体那一句的编码设置)Java代码package com.sesame.netwo [阅读全文]

热门标签

最新标签

推荐阅读

  1. 20

    2019-08

    为什么有的代理IP没有隐藏的效果?

    随着互联网大数据时代的到来,大家对互联网营销推广的需求越来越大,代理IP的用处越来越大,有的用IP做注册账号,有的用IP做爬虫采集,还有的用IP来进行投票等等,当然,还有很多用来隐

  2. 02

    2019-08

    代理IP用错有什么后果?

    代理IP软件是一种辅助工具,可以帮助顺利完成工作,解决IP被封、效率低的问题。因此,代理IP软件是深受欢迎的。但还是有很多人对其并不是很了解,那么,为什么要用代理IP软件呢?

  3. 19

    2019-11

    http反向代理会遇到什么问题?

    使用域名指向nginx服务来代理https,nginx可以通过分析clienthello中的server_name字段得到访问域名,然后通过解析域名地址来进行代理。

  4. 22

    2019-05

    爬虫代理ip资源是新媒体的宠儿?

    如今很多创业人员都开始投身于新媒体的发展,但是在新媒体发展的过程中爬虫代理ip平台功不可没。因为其实很多新媒体发展的初期都会通过在一些贴吧发帖,或者一些加密软件来进行吸粉。

  5. 03

    2019-04

    干货分享!获取代理ip地址的方法

    要用到代理服务器,前提需要获得代理服务器具体地址,它应当是ip地址或URL,比如“http.hunbovps.com”。如果代理服务器提供URL当做它的地址,那么有时候代表此代理服务器的IP地址不稳定,它可

  6. 20

    2019-05

    做爬虫在哪里可以选购高效的代理IP

    大数据时代来临,大数据从何而来?大数据来自爬虫辛勤的爬取网站信息,帮助搜索引擎成为一个辅助人们检索信息的工具。爬虫是网络数据中的重要组成部分,然而并不是所有目标网站都会