Android获取用户ip地址

这篇具有很好参考价值的文章主要介绍了Android获取用户ip地址。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

public class NetManager {

    /**
     * 获取用户IP地址<br/>
     * 注意:需要在androidManifest.xml中声明下面三个权限才能正常使用该方法,否则会空指针异常
     * <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     * <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     * <uses-permission android:name="android.permission.INTERNET"/>
     */
    public static String getIpAddress(Context context) {
        if (context == null) {
            return "";
        }

        ConnectivityManager conMann = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mobileNetworkInfo = conMann.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        NetworkInfo wifiNetworkInfo = conMann.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        if (mobileNetworkInfo.isConnected()) {
            return getLocalIpAddress();
        } else if (wifiNetworkInfo.isConnected()) {
            return getWifiAddress(context);
        }
        return "";
    }

    private static String getLocalIpAddress() {
        try {
            ArrayList<NetworkInterface> nilist = Collections.list(NetworkInterface.getNetworkInterfaces());
            for (NetworkInterface ni : nilist) {
                ArrayList<InetAddress> ialist = Collections.list(ni.getInetAddresses());
                for (InetAddress address : ialist) {
                    if (!address.isLoopbackAddress() && address instanceof Inet4Address) {
                        return address.getHostAddress();
                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
        return "";
    }

    private static String getWifiAddress(Context context) {
        if (context == null) {
            return "";
        }
        WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        int ipAddress = wifiInfo.getIpAddress();
        return intToIp(ipAddress);
    }

    private static String intToIp(int ipInt) {
        String s = (ipInt & 0xFF) + "." +
                ((ipInt >> 8) & 0xFF) + "." +
                ((ipInt >> 16) & 0xFF) + "." +
                ((ipInt >> 24) & 0xFF);
        return s;
    }
}

经过实测,并不能真的获取到网络上实际的外网IP地址,只能拿到他下面的内网IP地址,凑合着用吧

参考来源:https://blog.csdn.net/sinat_16458039/article/details/50260589文章来源地址https://www.toymoban.com/news/detail-566273.html

到了这里,关于Android获取用户ip地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【vue】前端获取用户真实IP地址 (外网IP地址)

    1. 打开index.html !-- 引入JS -- script src=\\\"http://pv.sohu.com/cityjson?ie=utf-8\\\"/script  2. 获取IP  let IP = returnCitySN[\\\"cip\\\"]; localStorage.setItem(\\\'ip\\\',IP);  完整代码:

    2024年02月16日
    浏览(39)
  • 如何获取用户的ip地址

    用户的 IP 地址可能会被隐藏或者修改,例如使用代理服务器、VPN 等工具,这样就无法准确获取用户的真实 IP 地址。 除了以上特殊情况,一般情况下 用户访问可能会经过一下链路 : 前端—nginx—网关—服务 。 一般情况下后面三个获取的ip地址只能是前一个的ip 如网关只能获

    2024年02月10日
    浏览(39)
  • Android 获取屏幕方向,根据屏幕旋转角度判断屏幕实际方向

    在使用 getResources().getConfiguration().orientation 获取屏幕方向时,可能会遇到不准确的问题。 这是因为该方法返回的是设备的自然方向,而不是屏幕的实际方向。 在某些情况下,设备的自然方向可能与屏幕的实际方向不同。例如,如果设备是横向放置的,但屏幕是纵向显示的,那

    2024年02月03日
    浏览(35)
  • http获取用户访问的IP地址

    获取用户访问的IP地址: 如果用户是正常情况下其字典的KEY键名为 REMOTE_ADDR request.META[\\\'REMOTE_ADDR\\\'] 但是有些网站服务器会使用nginx等代理http,或者是该网站做了负载均衡,导致使用remote_addr抓取到的是127.0.0.1,这时使用 HTTP_X_FORWARDED_FOR 才获得是用户的真实IP。推荐使用以下代码

    2024年02月01日
    浏览(38)
  • vue后台获取登录用户ip地址和所在地

    1.项目需要拿到登录账号的ip和所在地 2.免费的api可以直接调用使用,但是可能需要做好跨域,我因为用的是Fantastic-admin框架,应该本身就有跨域所以没有报错,可以正常获取到返回值,打印一下data看下  

    2024年02月09日
    浏览(34)
  • Java中使用HttpRequest获取用户真实IP地址端口

    获取请求来源ip代码: 获取请求来源端口代码:

    2024年02月11日
    浏览(49)
  • js获取用户浏览器信息和ip地址以及位置

    效果如下   效果如下 这里是在 vue中created生命周期中发送请求  返回输入如下  

    2024年02月11日
    浏览(35)
  • 前端获取用户ip地址,并放在请求头上(uniapp和H5)

     今日需求:          获取用户ip地址,并在每一次请求的时候带上这个ip地址 获取 用户ip地址的方式有很多,各大地图的开发者平台都能找到相关的API接口地址,都很牛掰,但是我看了一下,好像不太适合我(懒病犯了~~),所以我就用shohu的接口: http://pv.sohu.com/cityjson

    2024年02月11日
    浏览(34)
  • 用户Ip地址和百度地图api接口获取用户地理位置(经纬度坐标,城市)

    ?php //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1) function   getip(){      if (! empty ( $_SERVER [ \\\"HTTP_CLIENT_IP\\\" ])){      $cip   =  $_SERVER [ \\\"HTTP_CLIENT_IP\\\" ];      }      else   if (! empty ( $_SERVER [ \\\"HTTP_X_FORWARDED_FOR\\\" ])){      $cip   =  $_SERVER [ \\\"HTTP_X_FOR

    2024年02月11日
    浏览(53)
  • 如何通过Android手机查找IP地址

    我们要如何获取IP地址?其实有一个简单的方法,在Android手机上查找IP地址也很简单,只需要几个步骤,公网IP地址的查询过程更加简单。 1、Android手机查找私有IP地址 我们先来看看你的安卓手机的私有IP地址。通常私有IP地址对于 Android 智能手机是唯一的。 可以通过以下步骤

    2024年02月09日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包