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

Python:使用过滤器查找设备的IMEI? 总结,python,imei,Python,Imei,我使用MT4000遥测设备通过端口30000广播数据,然后使用python udp侦听器接收数据并将其插入数据库。然后,一个PHP页面读取该数据并以JSON格式显示数据 目标 我想在网页上添加一个功能,允许用户选择从哪个设备查看数据,作为过滤器 方法 我想使用python以编程方式提取设备IMEI编号,这是唯一标识设备的一种方法。我知道IMEI位于发送的每个数据包中,是一个15位数字 解决方案 将过滤器添加到页面背后的理论是什么。如果你想否决投票(甚至不否决),请留下一个理由,这样我可以改进我的

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

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

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

解决方案
将过滤器添加到页面背后的理论是什么。如果你想否决投票(甚至不否决),请留下一个理由,这样我可以改进我的问题写作。谢谢。

您知道号码的确切位置(即数据包中的偏移量)吗?或者你只知道在数据包的某个地方有15位数字,这是IMEI

如果第一个问题的答案是肯定的,那么提取IMEI应该不会有任何问题,因此我认为情况并非如此

以下仅适用于数据包结构完全未知的情况,因此您所能做的就是搜索一行中的15位数字,并希望这些是IMEI

如果数据包内容在Python代码中表示为字符串(或者如果可以将其转换为字符串),那么最简单(但不是最有效)的方法可能还是使用正则表达式,如
\d{15}

另一种方法是手动遍历数据包(假设它是字符串):


您的问题是从嗅探的UDP流中提取数据吗?我不确定我是否理解抱歉,问题是关于如何在数据包中定位IMEI,最好是使用python进行提取。您是否编写了任何代码或试图自己解决此问题?是的,但我的电脑今天早上崩溃了。它应该在一天结束前启动并运行。我所有的代码都是问题摘要中提到的,你想看什么?谢谢你回来,但问题实际上是关于如何从特定设备找到IMEI号码。你知道数据包结构吗?检查更新后的答案。我试图找出数据包中的位置在端口30000上使用tcpdump,但它没有接收到我通过该端口广播的任何内容。谢谢你的回复,这就是我想要的。如果我能分析数据包,我会更新并让你知道。不客气!很抱歉我愚蠢的第一个回答:)
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;