首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想要获取android手机的Ip地址,如何使用该Ip地址从web服务器联系该android手机以获取一些信息?

我想要获取android手机的Ip地址,如何使用该Ip地址从web服务器联系该android手机以获取一些信息?
EN

Stack Overflow用户
提问于 2012-06-06 16:55:04
回答 3查看 1K关注 0票数 1

我想得到安卓手机的IP地址,为此我尝试了InetAddress,但我在Emulator上得到了IP地址127.0.0.1。如何获取实际的IP地址?其次,我想从网络服务器上使用该IP地址联系那个android手机,询问一些信息,比如它的位置。例如:假设phone1需要Phone2的信息,然后Phone1联系with服务器,with服务器使用其保存的ip地址联系phone2,然后phone2将其位置响应给with服务器,with服务器响应Phone1。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-02 20:44:46

下面是获取IPV4的代码:

代码语言:javascript
复制
private String getLocalIpAddress() {
       try {
           for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
               NetworkInterface intf = en.nextElement();
               for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                   InetAddress in`enter code here`etAddress = enumIpAddr.nextElement();
                   if (!inetAddress.isLoopbackAddress()) {
                       if (inetAddress instanceof Inet4Address) {
                           return ((Inet4Address)inetAddress).getHostAddress().toString();
                       }
                   }
               }
           }
       } catch (SocketException ex) {
           Log.e("ServerActivity", ex.toString());
       }
       return null;
    }
票数 0
EN

Stack Overflow用户

发布于 2012-06-06 17:07:04

与其让服务器询问手机的位置,不如试着用另一种方式思考。

创建一个应用程序,它将在手机上运行,并定期将其位置发送到您的服务器。然后,当电话2想知道电话1的位置时,它将从服务器获得最新的已知位置。

票数 0
EN

Stack Overflow用户

发布于 2012-06-06 17:20:48

点击此处:http://www.droidnova.com/get-the-ip-address-of-your-device,304.html

代码语言:javascript
复制
public String getLocalIpAddress() {
try {
    for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
        NetworkInterface intf = en.nextElement();
        for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
            InetAddress inetAddress = enumIpAddr.nextElement();
            if (!inetAddress.isLoopbackAddress()) {
                return inetAddress.getHostAddress().toString();
            }
        }
    }
} catch (SocketException ex) {
    Log.e(LOG_TAG, ex.toString());
}
return null;
}

,因此如果此方法返回null,则没有可用的连接。如果该方法返回一个字符串,则此字符串包含设备当前使用的ip地址,独立于3G或WiFi。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10911063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档