IP代理软件,http代理,API提取-黑洞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. 15

    2019-07

    如何定制代理IP?

    很多人总是听说IP代理或者HTTP代理,那到底什么是真正的代理呢其实通俗的讲,IP代理和我们现实中的各种代理商是一样的,它就是我们在访问目标网络时的一个中转站。而这个中转站就是被称

  2. 18

    2019-03

    IP代理:python学习-- Django进阶之路 model的 objects对象 转 json

    # objects_to_json: 将 model对象 转化成 json # json_to_objects: 将 将反序列化的json 转为 model 对象 def json_field(field_data):

  3. 11

    2019-07

    普通代理IP可以满足工作需求吗?

    普通代理ip价格优惠,很多人就考虑使用普通代理ip,那么普通代理ip好用吗?质量怎样?

  4. 29

    2019-05

    代理IP经常遇到哪些错误?

    在使用代理IP的过程中,经常会遇到一些问题,可能一夜醒来,发现代理IP全都不能用了,也有可能就吃了个中午饭,下午的代理IP就大面积失效了,这是为什么呢,是代理IP的质量突然下降了吗

  5. 29

    2019-10

    直接获得可用的爬虫代理ip的方式有哪些?

    拥有大数据就约等于拥有财富,是一句互联网的玩笑话,想要爬取大数据就要用网络爬虫,网络爬虫 和国内 代理IP 在互联网的关系堪比一对好基友,当网络爬虫遇到反爬虫障碍时,使用代理IP

  6. 20

    2019-08

    我们应该如何选择IP代理

    互联网时代,不论是企业还是个人,多多少少的都会遇到IP被封,或者是需要频繁切换IP的情况,这个时候,我们就需要使用到换IP软件来解决这个问题,那么我们该如何选择合适的换IP软件呢?