获取ISP IP地址Android

时间:2017-01-13 13:47:10

标签: java android android-networking inetaddress

开始使用网络监控应用程序,我想知道是否有办法找出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);

2 个答案:

答案 0 :(得分:3)

您对服务进行HTTP调用,告诉您外部IP是什么。 这种服务的一个例子是ipify。

https://api.ipify.org/

文档: https://www.ipify.org

摘录:

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