开始使用网络监控应用程序,我想知道是否有办法找出ISP分配的IP地址?
我已经查看了Inet和WifiManager API,他们似乎给你的只是你的本地网络IP地址。我在下面尝试的代码,只是给了我当地的地址。
WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
TextView ipaddr = (TextView)findViewById(R.id.address);
ipaddr.setText("Your IP Address is: " + ip);
答案 0 :(得分:3)
您对服务进行HTTP调用,告诉您外部IP是什么。 这种服务的一个例子是ipify。
摘录:
try (java.util.Scanner s = new java.util.Scanner(new java.net.URL("https://api.ipify.org").openStream(), "UTF-8").useDelimiter("\\A")) {
System.out.println("My current IP address is " + s.next());
} catch (java.io.IOException e) {
e.printStackTrace();
}
答案 1 :(得分:1)
试试这个:
try {
URL ip = new URL("http://checkip.amazonaws.com/");
BufferedReader in = new BufferedReader(new InputStreamReader(ip.openStream()));
System.out.println(in.readLine());
} catch (IOException e) {
e.printStackTrace();
}