Android中如何获取wifi热点的IP?

2023-12-27

正如标题所说...我试图在将 wifi iface 配置为热点时获取其 IP。理想情况下,我想找到适用于所有手机的东西。

当然,WifiManager 在从 AP 获取信息时毫无用处。

幸运的是,我已经能够通过这样做来获取所有接口的 IP:

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()) {
                    Log.d("IPs", inetAddress.getHostAddress() );
                }
            }
        }
    } catch (SocketException ex) {
        Log.e(LOG_TAG, ex.toString());
    }
    return null;
}

这段代码将打印所有接口的所有IP(包括Wifi热点)。主要问题是我没有找到识别WiFi接口的方法。这是一个问题,因为某些手机有多个接口(WiMax 等)。这是我到目前为止所尝试过的:

  • 按 wifi iface 显示名称过滤:这不是一个好方法,因为显示名称从一个设备更改为另一个设备(wlan0、eth0、wl0.1 等)。
  • 按 MAC 地址过滤:几乎可以工作,但在某些设备上,热点 iface 没有 MAC 地址( iface.getHardwareAddress() 返回 null)...所以不是有效的解决方案。

有什么建议么?


这是我获取 wifi 热点 ip 的方法:

public String getWifiApIpAddress() {
    try {
        for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en
                .hasMoreElements();) {
            NetworkInterface intf = en.nextElement();
            if (intf.getName().contains("wlan")) {
                for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr
                        .hasMoreElements();) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()
                            && (inetAddress.getAddress().length == 4)) {
                        Log.d(TAG, inetAddress.getHostAddress());
                        return inetAddress.getHostAddress();
                    }
                }
            }
        }
    } catch (SocketException ex) {
        Log.e(TAG, ex.toString());
    }
    return null;
}

这将为您提供以下 IP 地址anywifi设备,这意味着它不仅仅用于热点。如果您连接到另一个 wifi 网络(意味着您未处于热点模式),它将返回一个 IP。

您应该先检查您是否处于 AP 模式。您可以使用此类:http://www.whitebyte.info/android/android-wifi-hotspot-manager-class http://www.whitebyte.info/android/android-wifi-hotspot-manager-class

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android中如何获取wifi热点的IP? 的相关文章

  • Android 版 Robotium - solo.searchText () 不起作用

    我在使用 Robotium 时遇到 searchText 函数问题 我正在寻找这个字符串
  • 迁移到 java 17 后有关“每个进程的内存映射”和 JVM 崩溃的 GC 警告

    我们正在将 java 8 应用程序迁移到 java 17 并将 GC 从G1GC to ZGC 我们的应用程序作为容器运行 这两个基础映像之间的唯一区别是 java 的版本 例如对于 java 17 版本 FROM ubuntu 20 04
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • Android 启动器快捷方式

    我制作了一个简单的打卡 打卡时钟应用程序 我想向用户添加在主屏幕上创建快捷方式的选项 该快捷方式将切换应用程序的状态 超时 超时 但我根本不希望此快捷方式在屏幕上打开应用程序 这是我的 setupShortcut private void
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • Android相机意图:如何获取全尺寸照片?

    我正在使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • 当单元格内的 JComboBox 中有 ItemEvent 时,如何获取 CellRow

    我有一个 JTable 其中有一列包含 JComboBox 我有一个附加到 JComboBox 的 ItemListener 它会根据任何更改进行操作 但是 ItemListener 没有获取更改的 ComboBox 所在行的方法 当组合框
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • Java - 不要用 bufferedwriter 覆盖

    我有一个程序可以将人员添加到数组列表中 我想做的是将这些人也添加到文本文件中 但程序会覆盖第一行 因此这些人会被删除 如何告诉编译器在下一个空闲行写入 import java io import java util import javax
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • 如何修复“sessionFactory”或“hibernateTemplate”是必需的问题

    我正在使用 Spring Boot JPA WEB 和 MYSQL 创建我的 Web 应用程序 它总是说 sessionFactory or hibernateTemplate是必需的 我该如何修复它 我已经尝试过的东西 删除了本地 Mav
  • 如何删除因 Google Fitness API 7.5.0 添加的权限

    将我的 play services fitness api 从 7 0 0 更新到 7 5 0 后 我注意到当我将新版本上传到 PlayStore 时 它 告诉我正在添加一个新权限和 2 个新功能 我没有这样做 有没有搞错 在做了一些研究来
  • 在 Google 地图上绘制线条/路径

    我很长一段时间都在忙于寻找如何在 HelloMapView 中的地图上的两个 GPS 点之间画一条线 但没有运气 谁能告诉我该怎么做 假设我使用扩展 MapView 的 HelloMapView 我需要使用叠加层吗 如果是这样 我是否必须重

随机推荐

  • Oracle将UNIX时间戳转换为带时区的时间戳

    尝试将 UNIX 时间戳转换为带时区的 Oracle 时间戳 期望看到不同的输出 但日期时间部分是相同的 什么是拧 select timestamp 1970 01 01 00 00 00 numtodsinterval 120410411
  • 如何在 webpack 解析器中获取文件名?

    我正在开发一个插件 该插件从模块中收集具有特定名称的导出 我已经通过解析器导出挂钩从各个文件中获取了数据 但我似乎无法找出如何提取解析器正在操作的实际模块 hook into the module factory and get the e
  • 如何使用axios发布查询参数?

    我正在尝试在 API 上发布一些查询参数 当我尝试通过邮件和名字作为查询参数传递时 这正在 PostMan Insomnia 上工作 http localhost 8000 api mails users sendVerificationM
  • 在 Mac 中运行 crontab

    我正在尝试测试一个必须由 cron 作业运行的 python 脚本 我正在尝试在我的 mac 中配置 cron 作业 但没有运行 这是我的 cron 工作 user usr local bin python3 Documents wpc s
  • VS code - 2 个拆分终端合二为一(拆分)

    当我使用 Node js 和 Angular 时 我目前使用两个终端 我必须通过下拉选项切换终端 有没有办法在同一个地方有两个终端 拆分 像这样 找不到办法 更新 Visual Studio Code 从版本 1 21 开始具有此功能 分体
  • 如何解析golang中的通用yaml并保留注释?

    我正在使用 golang yaml v3 库 目标是从带有注释的文件中解析任何 yaml 这意味着我没有预定义的结构 能够设置或取消设置结果树中的任何值并将其写回文件 然而 我遇到了相当奇怪的行为 正如您在下面的代码中看到的 如果传递给 U
  • 如何在 jQuery 中隐藏表格行?

    我有一张这样的桌子 table class headerTable tbody tr class hh td test1 td td 18 164 td tr tr class member td test3 td td 24 343 td
  • Nginx 容器:没有为证书定义“ssl_certificate_key”

    我正在尝试使用它来运行私人 docker 注册表tutorial https phoenixnap com kb set up a private docker registry 但是在我完成所有操作并运行 docker compose 后
  • 登录模型尝试登录用户而不是显示登录表单

    我已将整个代码从另一个项目移植到我的新项目Yii 1 1 12项目 它是原始的 一切都很好 在我的新项目中 尽管我在登录区域中没有触及任何内容 任何显示登录表单的尝试 或对任何操作的请求 需要用户登录 都会以Login模型尝试实际登录用户
  • java中的回车符(“\r\n”)[重复]

    这个问题在这里已经有答案了 我有一个使用java代码在unix环境中创建的文本文件 为了编写文本文件 我使用 java io FileWriter 和 BufferedWriter 对于每行后的换行符 我使用 bw write r n 方法
  • 有人发现 OSGi 在企业应用程序中很有用吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Node-js:websocket重新连接后未接收到事件

    我的 Node js 应用程序使用 bitfinex api node npm 包建立 Websocket 连接以接收来自 Bitfinex 加密货币交易所的数据 不幸的是 几个小时后连接悄然中断 应用程序停止通过 Websocket 接收
  • moment.js 在 Firefox 中给出无效日期,但在 chrome 中则不然

    我在使用 moment js 时遇到了一个奇怪的问题 我编写了一个函数将时间从 utc 转换为德国时间格式 并且一切似乎在 chrome 中都工作得很好 但现在我用 Firefox 尝试了 但这里我得到了一个无效的日期 moment loc
  • 如何监听 SQL Server 数据库更改

    使用 Net 4 0和SQL Server 2008 R2 我一直在研究利用 SqlDependency SqlNotifications 来监视某些数据库结构 将 SqlDependency SqlNotifications 与 SQL
  • ReadTimeoutError:Twitter 流 API

    我想得到一些关于攻击性狗的推文 我的关键字在代码中指定 它们都指的是德国牧羊犬 西班牙语 pastor alem n 例如 除了我希望收到的其他推文之外this one https twitter com EducaRacional sta
  • Python multiprocessing.Process:从局部变量开始

    我试图理解 multiprocessing Process 类 我想收集数据并将其异步存储在某个地方 存储数据后 它会以某种方式丢失 这是我的 MWE from future import print function import mul
  • 如何处理 .net core 3.1 自包含单文件发布的 Appsettings

    我有一个新的 NET Core 3 1 辅助类 它作为 Windows 服务托管 我使用模板创建的默认 appsettings json 和 appsettings environment json appsettings 是在Config
  • 我可以根据 iPhone 的位置发送推送通知(无需运行应用程序)吗?

    我有客户的要求 根据 iPhone 的位置 我们需要发送推送通知 现在我们如何在没有后台运行应用程序的情况下找到 iPhone 的位置呢 我们有办法实现这个目标吗 随着最近发布的 iPhone OS 4 我相信这已经成为可能 看http d
  • Symfony2 Doctrine Expr 'IS NOT NULL'

    我正在使用FormType for an Entity我的 并建立一个实体字段 http symfony com doc 2 1 reference forms types entity html 我需要两个Where中的条款And 从我读
  • Android中如何获取wifi热点的IP?

    正如标题所说 我试图在将 wifi iface 配置为热点时获取其 IP 理想情况下 我想找到适用于所有手机的东西 当然 WifiManager 在从 AP 获取信息时毫无用处 幸运的是 我已经能够通过这样做来获取所有接口的 IP publ