Azure IoTHub:获取连接设备的 IP 地址/位置

Posted

技术标签:

【中文标题】Azure IoTHub:获取连接设备的 IP 地址/位置【英文标题】:Azure IoTHub: Get IP Address / Location of connected devices 【发布时间】:2022-01-18 18:50:49 【问题描述】:

我想查询连接到 Azure IoTHub 的设备的公共 IP 地址或地理位置。 我在大约 3 年前发现了一个关于这个主题的问题 here。 但答案并不是我真正想要的。有谁知道现在 IoTHub 或 Azure Functions 中是否有直接用于此任务的新功能?

【问题讨论】:

我能问一下您对其他问题的回答不满意吗? IoT Hub 中没有内置功能。 当然,因为到目前为止我们还没有为这个项目使用设备孪生。仅使用设备孪生来实现地理定位功能对我来说似乎有点过分。也许我会通过遥测消息将 ip 推送到天蓝色...... 【参考方案1】:

简短的回答是,Azure IoT Hub 中没有内置功能来实现这一点。 Rita Han之前给出的答案还是正确的。不过我想更详细一点。

如果您有权访问 GPS,则可以将其存储在设备孪生的报告属性中。如果没有可用的 GPS,您可以将设备的公共 IP 存储在报告的属性中,并使用外部 API 来解析大致位置。

正如您在评论中提到的,您还可以在遥测消息中发送 IP。这也可以,但设备孪生的好处是它在设备离线时也可用,无需任何存储资源(设备孪生位于集线器中)。查看这两种情况的努力,它们都只使用一条消息将 IP 发送到 IoT 中心。不同之处在于,如果您使用的是 MQTT,则您需要 can listen for a confirmation message 以防您更新报告的属性。

【讨论】:

太好了,感谢您提供详细的回答和澄清使用设备孪生的好处。在我的情况下,上传的数据必须与地理位置相关联,设备可以在其生命周期内的不同位置之间移动。所以在我的情况下,最好通过遥测发送日志数据的文件名和相应的地理位置,并将这些信息保存在日志文件中......

以上是关于Azure IoTHub:获取连接设备的 IP 地址/位置的主要内容,如果未能解决你的问题,请参考以下文章

Azure iothub Device使用golang抛出InternalServerError

获取在 IotHub 设备上注册的直接方法列表

Azure IoT Hub 十分钟入门系列 - 实现从设备上传日志文件/图片到 Azure Storage

Azure IoT Hub 十分钟入门系列 - 使用模拟设备发送设备到云(d2c)的消息

如何在 Azure 流分析中通过 IotHub.ConnectionDeviceId 对延迟函数进行分区?

如何通过JMeter将多个MQTT客户端连接到单个iothub