获取 ISP IP 地址 Android
Obtain ISP IP Address Android
开始研究网络监控应用程序,我想知道是否有办法找出 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);
您对服务进行了 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();
}
试试这个:
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();
}
开始研究网络监控应用程序,我想知道是否有办法找出 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);
您对服务进行了 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();
}
试试这个:
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();
}