一尘不染

如何确定Java中路由器/网关的IP?

java

如何确定Java中路由器/网关的IP?我可以很容易地获得我的IP。我可以使用网站上的服务获取互联网IP。但是,如何确定网关的IP?

如果您知道自己的方法,那么在.NET中这很容易。但是,您如何用Java做到这一点呢?


阅读 524

收藏
2020-09-08

共1个答案

一尘不染

不幸的是,Java没有像其他语言那样令人愉悦。这是我所做的:

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

这假定网关是第二个令牌,而不是第三个令牌。如果是这样,则需要添加额外的内容st.nextToken();以使令牌生成器再增加一个位置。

2020-09-08