Android 获取IP地址(有线和无线网络IP地址)

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

刚好有个项目需要获取网络IP地址。由于设备可以连接wifi,也可以连接有线网络。特此做个获取IP地址的笔记,代码如下:

	// 获取ip地址
	private String getLocalIpAddress() {
        ConnectivityManager netManager = (ConnectivityManager) getApplicationContext().getSystemService(CONNECTIVITY_SERVICE);
        NetworkInfo info = netManager.getActiveNetworkInfo();
        
        // 网络是否连接
        if (info != null && info.isConnected()) {
        	// wifi类型
            if (info.getType() == TYPE_WIFI) {
                return getWifiIpAddress();
            } else {
            // 其他类型
                return getEthIpAddress();
            }
        }
        return "0.0.0.0";
    }

获取WiFi的ip地址

	// 获取wifi的ip地址
	private String getWifiIpAddress() {
        WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        
        // 获取32位整型IP地址
        int ipAddress = wifiInfo.getIpAddress();

        //返回整型地址转换成“*.*.*.*”地址
        return String.format("%d.%d.%d.%d",
                (ipAddress & 0xff), (ipAddress >> 8 & 0xff),
                (ipAddress >> 16 & 0xff), (ipAddress >> 24 & 0xff));
    }

获取有线网络的ip4地址

	// 获取有线网络的ip4地址
    private String getEthIpAddress() {
        String infaceName = "eth0";
        String ip = "0.0.0.0";
        try {
            Enumeration<NetworkInterface> netInterface = NetworkInterface.getNetworkInterfaces();
            while (netInterface.hasMoreElements()) {
                NetworkInterface inface = netInterface.nextElement();
                if (!inface.isUp()) {
                    continue;
                }
				
				// eth0 有线网络判断
                if (!infaceName.equals(inface.getDisplayName())) {
                    continue;
                }

                Enumeration<InetAddress> netAddressList = inface.getInetAddresses();
                while (netAddressList.hasMoreElements()) {
                    InetAddress inetAddress = netAddressList.nextElement();
                    // 获取IP4地址
                    if (inetAddress instanceof Inet4Address) {
                        return inetAddress.getHostAddress();
                    }
                }
            }
        } catch (Exception e) {

        }
        return ip;
    }

如果对您有帮忙,请点赞支持。如有不合理的地方,请指正!谢谢~文章来源地址https://www.toymoban.com/news/detail-776704.html

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

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

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

相关文章

  • 电脑同时连接有线和无线网络怎么设置网络的优先级

    电脑同时连接有线和无线网络怎么设置网络的优先级: 我们知道在 笔记本电脑系统 中,可以通过有线或无线网络进行联网。如果电脑在有线网络和无线网络同时存在的情况,应该怎么设置有线网络优先连接呢?对此我们提供下面的方法可以让电脑在有WiFi的条件下设置优先使

    2024年02月09日
    浏览(56)
  • 无线网卡报错:windows仍在设置此设备的类配置(代码56)解决window11 无wifi按钮\无法连接有线网络问题

    这种情况是虚拟机VMware的原因,根据下面方法做即可 可能也有驱动本身的问题,本篇只解决此类型报错,如遇其他情况请另行查找。 1、在设备管理器中找到网络适配器一栏,可以看到wifi网卡(我这是 Inter(R)Wi-Fi 6 AX201 160MHz)或者有线网卡(Realtek Pcie Gbe Family Controller)前面有

    2024年02月11日
    浏览(49)
  • Android获取用户ip地址

    经过实测,并不能真的获取到网络上实际的外网IP地址,只能拿到他下面的内网IP地址,凑合着用吧 参考来源:https://blog.csdn.net/sinat_16458039/article/details/50260589

    2024年02月16日
    浏览(53)
  • Android获取mac地址、OA地址和外网IP地址

    1、获取Mac地址:

    2024年02月13日
    浏览(42)
  • 如何解决无线网络连接ip冲突或无效的问题

    所谓无线网络,既包括允许用户建立远距离无线连接的全球语音和数据网络,也包括为近距离无线连接进行优化的红外线技术及射频技术,与有线网络的用途十分类似,最大的不同在于传输媒介的不同,利用无线电技术取代网线,可以和有线网络互为备份。 在我们用无线网络

    2024年02月05日
    浏览(43)
  • 链接别人的无线网络WIFI不知道密码该如何获取

    现在无线网络WIFI的普及度已经大大提升,人们在实用电子产品的时候,已经渐渐离不开WIFI了,但是有时候我们出门在外的话,要链接别人的WIFI实用,又不知道密码,怎么办呢? 1、开机,进入BIOS,设置为U盘优先启动,然后保存并重启; 2、开始时会闪过win 98的启动界面,然后

    2024年02月06日
    浏览(44)
  • Ubuntu 22.04下对无线网络作静态ip设置

    内容如题所示,最近本人安全毕业,参加工作了,此处应有鲜花和掌声,哈哈哈。但新的生活总是有很多的小问题,坎坎坷坷,所以,我继续记录工作和学习生活中遇到的问题。 今天带我的云哥给了我一个ip,一个mask和一个gateway,让我将自己的笔记本设置静态ip,我想,这不

    2024年02月15日
    浏览(70)
  • 常见的无线网络协议介绍 全面认识无线网络协议的作用

    虽然大家对于网络方面已经很熟悉了,但是大家对于无线网络协议又了解多少,知道无线网络协议都有哪些,他们的各自的作用是什么吗?本文小编就带着我们进行了解网络协议的特性,希望对大家在网络知识方面有所帮助。 802.11b协议 说明:802.11b协议是由IEEE(电气电子工

    2024年02月05日
    浏览(46)
  • 无线网络不稳定?四大杀手逐一排除 揭秘无线网络隐秘风险

    在安装了一个无线网络之后,有时你可能会发现这个网络对用户应用的支持并不如你想像的那样好。用户们有可能会抱怨连接不稳定和性能差劲,这样便会妨碍应用程序的使用。此时,作为管理员的你就需要进行故障诊断。首先要找到问题的根本原因。 下面的表格可能会给你

    2024年02月06日
    浏览(51)
  • 无线智能路由器的基本设置(网络名称(SSID)、无线频道、网络模式)

    普通无线智能路由器用户,需要撑握无线智能路由器哪些基本设置方法呢?无线智能路由器最基本的设置不外乎无线网络的基本参数,如网络名称 (SSID)、无线频道、网络模式等。下面以JCG JHR-N825R无线智能路由器为例,说明一下无线智能路由器的基本设置。 1.网络名称:SSID 是

    2024年02月05日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包