2

可能重复:
如何获取设备的 IP 地址?

下面是我如何尝试获取外部 IP 的片段。但是,它不会返回任何东西......

public String getIpAddress() {

    try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpGet httpget = new HttpGet("http://www.whatismyip.com/?404");
            // HttpGet httpget = new HttpGet("http://whatismyip.com.au/");
            // HttpGet httpget = new HttpGet("http://www.whatismyip.org/");
            HttpResponse response;

            response = httpclient.execute(httpget);

            //Log.i("externalip",response.getStatusLine().toString());

            HttpEntity entity = response.getEntity();
            entity.getContentLength();
            str = EntityUtils.toString(entity);
    }
    catch (Exception e)
    {
    }
    return str;

}
4

2 回答 2

12
public String getIpAddress() {
String ip;
   try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet("http://ip2country.sourceforge.net/ip2c.php?format=JSON");
        // HttpGet httpget = new HttpGet("http://whatismyip.com.au/");
        // HttpGet httpget = new HttpGet("http://www.whatismyip.org/");
        HttpResponse response;

        response = httpclient.execute(httpget);
        //Log.i("externalip",response.getStatusLine().toString());

        HttpEntity entity = response.getEntity();
        entity.getContentLength();
        str = EntityUtils.toString(entity);
        Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();
        JSONObject json_data = new JSONObject(str);
        ip = json_data.getString("ip");
        Toast.makeText(getApplicationContext(), ip, Toast.LENGTH_LONG).show();
    }
    catch (Exception e){...}

  return ip;
}

或者

2015 年 2 月更新

WhatIsMyIp 现在公开了一个您可以使用的开发人员 API 。

于 2012-10-12T08:22:42.970 回答
0

你可以看看这里 http://code.google.com/p/external-ip/source/browse/src/org/kost/externalip/ExternalIP.java

以及这里 以编程方式在android中的外部IP地址

于 2012-10-12T07:51:27.133 回答