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? 的相关文章

  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 如何使用InputConnectionWrapper?

    我有一个EditText 现在我想获取用户对此所做的所有更改EditText并在手动将它们插入之前使用它们EditText 我不希望用户直接更改中的文本EditText 这只能由我的代码完成 例如通过使用replace or setText
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • 错误:在根项目“projectName”中找不到项目“app”

    我有一个在 Eclipse 中开发的旧应用程序 现在尝试将其迁移到 Android Studio 我更新了库并遵循了基本步骤 现在 我收到此错误 Error Project app not found in root project pro
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 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