Java实现随意切换VPN改变上网地区

http://www.jb51.net/article/69267.htm

这篇文章主要介绍了Java实现随意切换VPN改变上网地区,本文直接给出实例代码,需要的朋友可以参考下

在很多情况下,有些网络应用的需求会要求模拟人在不同地区访问网站和应用。因而切换IP也就应运而生了,然而IP作为一种稀缺资源不是随便可以获得的。因而会想到应用程序切换VPN来达到全国不同地区访问网络。因而有了以下方案。

前提:

1、windows操作系统
2、手工新建网络连接

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

package com.selenium.test;

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

public class ConnectNetWork {

  /**

   * @param args

   * @throws Exception

   */

  public static void main(String[] args) throws Exception {

    // TODO Auto-generated method stub

    connAdsl("VPN_Test","test", "test");

    Thread.sleep(1000);

    cutAdsl("VPN_Test");

    Thread.sleep(1000);

  }

  /**

   * 执行CMD命令,并返回String字符串

   */

  public static String executeCmd(String strCmd) throws Exception {

    System.out.println("cmd /c " + strCmd);

    Process p = Runtime.getRuntime().exec("cmd /c " + strCmd);

    StringBuilder sbCmd = new StringBuilder();

    //这里很重要,设置GB2312解决乱码!!!

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

    //我NetBeans默认用UTF8

    BufferedReader br = new BufferedReader(new InputStreamReader(p

        .getInputStream(), "GB2312"));

    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[2000];

    in.read(b);

    String msg = new String(b, "GB2312");

    //用GB2312解释这堆字节,就可以组装成一个正常的String了

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

    return msg;

    */

  }

 

  /**

   * 连接ADSL

   * 语法: rasdial 连接名称 username password

   * 实例: rasdial 我的宽带 hzhz1234567890 dfdfdfdfdf

   */

  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);

    //String tempCmd = executeCmd("ping www.youku.com");

    

    // 判断是否连接成功

    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;

    }

  }

}

时间: 2024-08-06 22:27:23

Java实现随意切换VPN改变上网地区的相关文章

java切换VPN让你像幽灵一样出现在全国各地

在很多情况下,有些网络应用的需求会要求模拟人在不同地区访问网站和应用.因而切换IP也就应运而生了,然而IP作为一种稀缺资源不是随便可以获得的.因而会想到应用程序切换VPN来达到全国不同地区访问网络.因而有了以下方案. 前提: 1.windows操作系统 2.手工新建网络连接 package com.selenium.test; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStream

可实现随意切换的button同时随切换改变title的颜色

-(void)addBtn { NSArray *arr = [[NSArray alloc] initWithObjects:@"未使用",@"已使用",@"已付款",@"退款", nil]; for (int i = 0; i < 4; i ++) { UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btn.frame = CGRe

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

动态切换IP的实现主是也由Windows的rasdial命令提供的,其实不是java的功劳,java只是调用一下bat脚本而已: rasdial命令: 拨号 Java代码   语法: rasdial  连接名称 username password 实例: rasdial 我的宽带 hzhz1234567890 dfdfdfdfdf 断网 Java代码   语法:rasdial  连接名称 /disconnect 实例: rasdial 宽带  /disconnect java程序调用rasdia

如何让DIV模块随着页面固定和不固定随意切换

最近做公司官网,左边文章列表,右边文章详情,要求左边文章列表随着页面向上滚动到某个位置时,固定在页面顶部,当滚动到footer出现时,div模块随页面滚动而不再固定在顶部. 思路: 1,给外层的div设置position:relative; 2,判断div块到达页面顶部时,设置fixed固定属性 3,判断左边div块的距离滚动条顶部的距离 + 左div块的高度 >= 右边文章详情距滚动条顶部的距离 + 详情页的高度, 改变div块的bottom  top设为auto 4,判断左边div块的距离滚

VPN同时上网(批处理,自动获取IP地址并更改路由)

家里的电脑太烂了,开了虚机就基本动不了,只能用VPN连接到单位的VPN服务器,在另台工作机上开虚机,拨号VPN连接成功后,打开网页会很慢,下面通过批处理自动添加路由实现访问公司网络资源走VPN,上网浏览网页等走自己的网络. 怎么创建VPN这里就不具体说了,直接在网络中心里创建完后在属性-网络-TCP/IP4属性-高级-去掉勾选的"在远程网络上使用默认网关" 假设我们的VPN名字叫PvButler,连接VPN后直接运行下面的批处理,里面添加的路由地址根据自己的修改即可 @echo off

java中可以让实例改变了类Feild(java这么干就是一个错误,你看到了就当做是类在该修改或这个类Feild)

class Person { public String name;//定义实例Feild public static int eyeNum;//定义类Feild } public class PersonTest { public static void main(String[] args) { System.out.println("Person的eyeNum的类Feild值是:" + Person.eyeNum); } } 运行: [[email protected] java

jdk1.8与jdk1.7的随意切换

第一步:安装 第二步:配置(随意切换) 第三步:检验 原文地址:https://www.cnblogs.com/luwd/p/8403603.html

同一网页间信息的随意切换

1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&g

使用update-alternatives 命令修改Java版本-自动切换Java版本

当linux系统里面安装了多个Java时 ,我们可以在不修改原配置文件时自动切换Java版本: [[email protected] ~]# update-alternatives --config java 要维持当前值按回车或者键入选择的编号: 2 查看版本就切换过来了,比起手动去修改原配置文件方便多了!