如何确定Java中路由器/网关的IP?我可以很容易地获得我的IP。我可以使用网站上的服务获取互联网IP。但是,如何确定网关的IP?
如果您知道自己的方法,那么在.NET中这很容易。但是,您如何用Java做到这一点呢?
不幸的是,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();以使令牌生成器再增加一个位置。
st.nextToken();