Closed. This question needs to be more focused 。它目前不接受答案。
想改善这个问题吗?更新问题,使其仅通过 editing this post 关注一个问题。
6年前关闭。
Improve this question
概括
我使用 MT4000 遥测设备通过端口 30000 广播数据,然后使用 python udp 监听器接收此数据并将其插入数据库。然后,一个 PHP 页面读取该数据并以当前的 JSON 格式显示该数据。
目标
我想在网页上添加一个功能,允许用户选择他们从哪个设备查看数据,作为过滤器。
方法
我想使用 python 以编程方式提取设备 IMEI 号,这是一种唯一标识设备的方法。我知道 IMEI 位于发送的每个数据包中,并且是一个 15 位数字。
解决方案
将过滤器添加到页面背后的理论是什么。如果你想投反对票(甚至不投),请留下一个理由,这样我就可以改进我的问题写作。谢谢。
想改善这个问题吗?更新问题,使其仅通过 editing this post 关注一个问题。
6年前关闭。
Improve this question
概括
我使用 MT4000 遥测设备通过端口 30000 广播数据,然后使用 python udp 监听器接收此数据并将其插入数据库。然后,一个 PHP 页面读取该数据并以当前的 JSON 格式显示该数据。
目标
我想在网页上添加一个功能,允许用户选择他们从哪个设备查看数据,作为过滤器。
方法
我想使用 python 以编程方式提取设备 IMEI 号,这是一种唯一标识设备的方法。我知道 IMEI 位于发送的每个数据包中,并且是一个 15 位数字。
解决方案
将过滤器添加到页面背后的理论是什么。如果你想投反对票(甚至不投),请留下一个理由,这样我就可以改进我的问题写作。谢谢。
最佳答案
您知道数字的确切位置吗(即它在数据包中的偏移量)?或者您只知道数据包中的某处连续 15 位数字是 IMEI?
如果第一个问题的答案是肯定的,那么提取 IMEI 应该没有任何问题,所以我认为情况并非如此。
以下仅适用于完全未知数据包结构的情况,因此您可以做的就是连续搜索15位数字并希望这些是IMEI。
如果数据包内容在 Python 代码中表示为字符串(或者如果您可以将其转换为字符串),那么最简单(但不是最有效)的方法可能是使用正则表达式,例如 \d{15}
。
另一种方法是手动遍历数据包(假设它是一个字符串):
def findImei(packet):
start = -1;
cnt = 0;
for i, c in enumerate(packet):
if not c.isdigit():
cnt = 0;
continue;
if cnt == 0:
start = i;
cnt += 1;
if cnt == 15:
return packet[start : i + 1]
return None;
关于Python:使用过滤器查找设备的 IMEI?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25427908/
10-11 14:30