我们如何使用java代码获取IP地址的方式很清楚,很多关于这个主题的问题都得到了回答。
但假设您的计算机上有Vmware或VirtualBox,那么您将拥有额外的虚拟网卡,每个虚拟网卡都有自己的IP地址。
执行一个小程序时,结果就像192.168.x.x,它属于我的一个虚拟网络适配器。 但使用“我的IP是什么”,结果就像197.x.x.x
那么如何才能获得连接接口的IP地址?
答案 0 :(得分:0)
您的接口IP 192.168.x.x是您的本地适配器接口。前缀192.168表示这是私有不可路由的地址,仅在NAT防火墙后有效。
WhatIsMyIP返回的IP是您通过其访问Internet的防火墙/网关的外部地址。除非您的计算机直接连接到Internet,否则这两个地址将永远不会相同。
答案 1 :(得分:0)
这应该可以解决问题:
import java.io.*;
import java.util.*;
public class ExecTest {
public static void main(String[] args) throws IOException {
Process result = Runtime.getRuntime().exec("traceroute -m 1 www.amazon.com");
BufferedReader output = new BufferedReader(new InputStreamReader(result.getInputStream()));
String thisLine = output.readLine();
StringTokenizer st = new StringTokenizer(thisLine);
st.nextToken();
String gateway = st.nextToken();
System.out.printf("The gateway is %s\n", gateway);
}
}
由Chris Bunch提供:How can I determine the IP of my router/gateway in Java?
电贺!