我可以在不使用外部服务的情况下在 Chrome 应用程序中获取我的 IP 地址吗?

2023-11-30

我正在构建一个镀铬应用程序并创建了一个UDP套接字通过镀铬插座 API.

有没有办法找回自己的IP地址不使用外部服务? 我所说的“自己的 IP 地址”是什么意思:两者client and server位于同一网络上。这镀铬应用程序需要回答一个UDP广播与它自己的本地IP地址.

实际上有一个镀铬插座API正是针对该用例。但不幸的是我只收到以下回调对象:Object {paused: false, persistent: false, socketId: 17},它错过了localAddress属性。它是一个(选修的)属性中的SocketInfo对象根据文档。这本质上是我正在运行的代码:

chrome.sockets.udp.create({}, function(socketInfo){
    chrome.sockets.udp.getInfo(socketInfo.socketId, function (detailedInfo){
        ipAddress = detailedInfo.localAddress;
        console.debug(detailedInfo); // containts no `localAddress`
    });
});

我也不认为我错过了任何清单权限因为没有在中描述特殊权限API文档。这就是我使用的:

"sockets": {
  "udp": {
    "send": "*",
    "bind": "*"
  }
}

当我使用Python我可以通过以下方式实现该目标:

import socket
ip_address = socket.gethostbyname(socket.gethostname())

任何帮助都会很棒!


事实证明我使用了错误的API。对于我的用例,我需要使用chrome.system.network.getNetworkInterfaces.

这将返回一个包含所有接口及其接口的数组IP地址.

这是我的示例代码:

chrome.system.network.getNetworkInterfaces(function(interfaces){
    console.log(interfaces);
});

清单权限:

"permissions": [
  "system.network"
],

考虑到这些评论,提供完美的解决方案并不容易,因为必须找到正确的 UDP 端口接口。

此时,完美匹配界面的唯一方法就是bind给出的所有接口的所有地址getNetworkInterfaces。然后您就可以确切地知道使用哪个接口来接收调用,并且可以使用正确的IP地址.

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

我可以在不使用外部服务的情况下在 Chrome 应用程序中获取我的 IP 地址吗? 的相关文章

  • 如何检测我正在 eval() 调用中?

    是否存在字符串s这样 new Function s and eval s 表现不同 我正在尝试 检测 字符串的评估方式 检查是否有arguments目的 如果它存在 那么您就在该函数中 如果没有 那就已经是evaled 请注意 您必须将支票
  • 首选的客户端路由解决方案? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在回调函数之外使用 FB.api(JS SDK) 响应?

    我在登录甚至调用 api 方面没有任何问题 我只是在 api 回调之外获取响应时遇到问题 我知道它是异步运行的 所以我想将它放在一个返回响应的函数中 这是我的想法 What I would like to be able to do fun
  • Jquery:表单验证不起作用

    我对 Jquery 很陌生 希望你们能帮助我解决这个 jquery 验证问题 一直在尝试验证表单 但它根本没有验证 它接受我在字段中输入的任何内容 无论我设置什么限制 请帮忙 谢谢 这是我的代码
  • 从提交的表单中获取值

    我有一个非常简单的表格
  • Javascript - 删除粘贴上的空格

    我有一个最大长度为 10 的输入文本字段 该字段用于澳大利亚电话号码 10 位数字 电话号码通常分为以下语法 12 12345678 如果有人复制上面的内容并将其粘贴到我的输入字段中 显然会留下最后一位数字并保留空格 有没有办法在粘贴到输入
  • JavaScript - 如何通过键盘使用 onclick 函数

    我有 HTML 和 JavaScript 代码
  • 可以在 d3.js 中使用具有固定圆圈大小的圆圈包布局吗?

    此圆形包布局示例 http bl ocks org 4063269 http bl ocks org 4063269 非常适合我正在从事的项目 但是它会调整所有圆圈相对于彼此的大小 有没有一种简单的方法来指定每个圆的固定半径 我已经搜索了源
  • 如何限制注册用户尝试投票两次[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 php 编码和网站设计非常陌生 我正在尝试开发一个在线投票系统 只允许注册用户投票 已完成所有操作并且工作正常 但我需要的帮助是
  • 无法设置未定义的属性“显示”

    我正在编写脚本来隐藏 显示菜单 但遇到了一些麻烦 function displayMenu var classMenu event target className classMenu Menu document getElementsBy
  • 在javascript/jQuery中设置Java的数据结构

    有没有办法在javascript中像java一样创建集合数据结构 唯一集合 对于一组字符串 我只使用值为 true 的对象 var obj obj foo true obj bar true if obj foo foo in set 这基
  • 如何并排展开和折叠三个div?

    document ready function toggle click function if this data name show sidebar animate width 10 hide map animate width 89
  • 将图像嵌入 Chrome 扩展程序

    我正在构建一个 Google Chrome 扩展 它将 HTML 注入到真实的网页中 注入还包含图像 现在我想知道如何在扩展中引用图像 到目前为止 我只能在服务器上使用它们来引用它们http example com myimage png
  • 单击

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我知道如何用 jquery 做到这一点 但我被 React 困住了 每当用户点击 div 时 我如何聚焦输入字段 你需要有一个onCl
  • 是否可以使用 JavaScript 导入 HTML?

    我有一些具有相同页脚的 html 页面 使用 JavaScript 并且仅使用 JavaScript 我可以在其中导入另一个 html 页面吗 下面介绍了如何仅使用 JavaScript 向页面添加页脚 2022 代码 使用fetch ht
  • 在 Angularjs 中格式化输入值

    我正在尝试编写一个指令 自动格式化数字
  • 使用 jquery 选中和取消选中所有复选框

    我正在使用此脚本来选中和取消选中所有复选框 checkall click function var checked this data checked chkall find checkbox attr checked checked th
  • 根据传单中的属性更改标记颜色

    我的目标是让我的标记根据它们的不同而采用三种不同的颜色rating财产 我看过类似的帖子 其中使用对象来定义颜色 每个标记都有一个rating属性在 1 到 5 之间 我正在考虑使用 else if 语句 例如 if rating lt 3
  • 如何使用 javascript 获取 html5 视频的缩略图?

    我找到了根据 URL 获取视频缩略图的 JavaScript 代码 不过 我只在 YouTube 和 Vimeo 上找到了这个 似乎没有人列出如何处理旨在嵌入 html5 视频标签的视频的示例 能做到吗 谢谢 是的 您可以使用视频作为画布的
  • MutationOberserver 回调是否在修改观察到的元素的同一动画帧内触发? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 假设我对使用以下命令创建的框架内的元素进行了更改window requestAnimationFrame并且被修改的元素正在被观察

随机推荐