使用JAVA更改计算机IP地址

问题描述 投票:3回答:5

我需要使用java更改计算机IP地址...我已经尝试过此操作,但这不起作用...

    String str1="192.168.0.201"; 
    String str2="255.255.255.0";
    String[] command1 = { "netsh", "interface", "ip", "set", "address",
    "name=", "Local Area Connection" ,"source=static", "addr=",str1,
    "mask=", str2};
    Process pp = java.lang.Runtime.getRuntime().exec(command1);
java ip lan
5个回答
2
投票

[(可能)您需要正确连接那些key=value参数-按照书面说明,它们将被视为单独的参数,即

{..., "addr1=" + str1, "mask=" + str2 };

1
投票

您尝试过这个吗?

String[] command1 = { "netsh", "interface", "ip", "set", "address",
"name=\"Local Area Connection\"" ,"source=static", "addr="+str1,
"mask="+str2};

请注意,现在=后的参数不能用空格分隔。另请注意,双引号引起了“本地连接”。

如果仍然不起作用,请尝试将本地连接用单引号引起来,如下所示:

"name='Local Area Connection'"

0
投票
public class DaysinaMonth {
    public static void main(String[] args) throws Throwable{
        String str1="192.168.0.201"; 
        String str2="255.255.255.0";
        String[] command1 = { "netsh", "interface", "ip", "set", "address",
        "name=", "Local Area Connection" ,"source=static", "addr=",str1,
        "mask=", str2};
        Process pp = java.lang.Runtime.getRuntime().exec(command1);
        System.out.print( pp);
    }
}

这似乎可行,但返回值很奇怪:java.lang.ProcessImpl@659e0bfd

未发现错误,并且我的IP已更改,但未达到预期的方式。


0
投票

我测试了您发布的代码,这是我收到的错误

线程“主”中的异常java.lang.Error:未解决的编译问题:未处理的异常类型IOException

at DaysinaMonth.main(DaysinaMonth.java:9)

在此行发现错误:

Process pp = java.lang.Runtime.getRuntime().exec(command1);

我没有解决此问题的建议,但是我可以说,看一下提供的代码,除非用于形成循环,否则运行时似乎没有用,但是由于您没有将IP设置为随机生成的数字,没有理由要做。


0
投票

请确保您的界面名称

使用cmd中的netsh interface ipv4 show config检查连接的名称

© www.soinside.com 2019 - 2024. All rights reserved.