Python:使用过滤器来查找设备的IMEI?

2024-09-30 01:25:47 发布

您现在位置:Python中文网/ 问答频道 /正文

摘要

我使用MT4000遥测设备通过30000端口广播数据,然后使用PythonUDP侦听器接收数据并将其插入数据库。然后一个PHP页面读取该数据并显示当前JSON格式的数据。在

目标

我想在网页上添加一个功能,允许用户选择从哪个设备查看数据,作为过滤器。在

方法

我想使用python以编程方式提取设备IMEI号,这是唯一标识设备的方法。我知道IMEI位于发送的每个包中,并且是一个15位数字。在

解决方案

在页面中添加过滤器的原理是什么。如果你想投反对票(甚至不投),请留下理由,这样我可以改进我的问题写作。谢谢。在


Tags: 数据方法端口数据库json过滤器目标格式
1条回答
网友
1楼 · 发布于 2024-09-30 01:25:47

你知道数字的确切位置吗(即它在包中的偏移量)?或者你只知道在数据包的某个地方,一行有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;

相关问题 更多 >

    热门问题