java代碼設置路由



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

/**
 * 通過ipconfig命令找到vpn地址; 通過此ip地址設置路由
 */
public class Ipconfig {

    public static void main(String[] args) {
        String ip = getIpByExecuteCmd();
        String cmd1 = "route add 188.29.0.0 MASK 255.255.0.0  " + ip;
        System.out.println("設置路由: " + cmd1);
        //設置路由需要管理員權限,調用nircmd來執行命令
        //官方64位下載地址:http://www.nirsoft.net/utils/nircmd-x64.zip
        String x = "I:\\my_program\\nircmd-x64\\nircmd.exe elevate " + cmd1;
        String r = getLocalMachineInfo(x);
        System.out.println("結果: " + r);

    }

    private static String getIpByExecuteCmd() {
        String s = getLocalMachineInfo("cmd /c ipconfig");
        String search = "適配器 xx電信:";
        String seach_ipv4 = "IPv4 地址";
        String[] list = s.split("\n");
        List<String> ll = new ArrayList<>();
        for (String s1 : list) {
            if (s1.indexOf(search) > 0 || s1.indexOf(seach_ipv4) > 0) {
                System.out.println(s1);
                ll.add(s1);
            }
        }

        String str = ll.get(1);
        String result = str.split(":")[1];
        System.out.println("xx電信的ip: " + result);
        return result;
    }

    static String getLocalMachineInfo(String cmd) {
        String line = "";
        int n;
        Process ps = null;
        BufferedReader br = null;
        StringBuffer sb = new StringBuffer();
        try {
            ps = Runtime.getRuntime().exec(cmd);
            br = new BufferedReader(new InputStreamReader(ps.getInputStream(), "gbk"));
            while (null != (line = br.readLine())) {
                sb.append(line).append("\n");
            }
            ps.waitFor();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                ps.destroy();
            }
        }
        return sb.toString();
    }

}

 編譯執行java文件的bat腳本: vpn_set_route.bat

set JAVA_HOME=I:/Program" "Files/Java/jdk1.8.0_25
%JAVA_HOME%/bin/javac *.java
%JAVA_HOME%/bin/java -cp . Ipconfig

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章