如何获取连接接口的IP地址

时间:2014-04-11 21:26:00

标签: java networking ipv4

我们如何使用java代码获取IP地址的方式很清楚,很多关于这个主题的问题都得到了回答。

但假设您的计算机上有Vmware或VirtualBox,那么您将拥有额外的虚拟网卡,每个虚拟网卡都有自己的IP地址。

执行一个小程序时,结果就像192.168.x.x,它属于我的一个虚拟网络适配器。 但使用“我的IP是什么”,结果就像197.x.x.x

那么如何才能获得连接接口的IP地址?

2 个答案:

答案 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?

电贺!