From c4c9a9d73c29dbe83515c849cc3b769fea586676 Mon Sep 17 00:00:00 2001 From: LittleIcy <5144214+littleicy@user.noreply.gitee.com> Date: Sat, 20 May 2023 08:41:37 +0000 Subject: [PATCH] =?UTF-8?q?=E8=AF=BB=E5=8F=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: LittleIcy <5144214+littleicy@user.noreply.gitee.com> --- hc.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 hc.py diff --git a/hc.py b/hc.py new file mode 100644 index 0000000..15df922 --- /dev/null +++ b/hc.py @@ -0,0 +1,48 @@ +import numpy as np +from scapy.all import * +import swalign +import pandas as pd +from sklearn.cluster import DBSCAN + + +def reader(): + file = 'D:\\development\\python\\project\\reverse\\cluster\\modbus.pcap' + ft = rdpcap(file) + data = [] + for i in ft: + data.append(i[Raw].load) + print(data[0]) + print(data[1]) + print(lcs(data[0], data[1])) + reverse(data[:1000], 3) + + +def lcs(s1, s2): + # 最长公共子序列长度 + l1 = len(s1) + l2 = len(s2) + dp = [[0] * (l2+1) for _ in range(l1+1)] + for i in range(1, l1 + 1): # dp表第一行和第一列元素为0,所以i和j要从1开始,到最后一个元素len1+1 + for j in range(1, l2 + 1): + if s1[i - 1] == s2[j - 1]: # i=1时字符串从a[0]开始 + dp[i][j] = dp[i - 1][j - 1] + 1 + else: + dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + return dp[l1][l2] + + +def reverse(data, k): + # 聚类 + # center = [data[0]] + center = np.empty((k, 1), dtype=list) + center[0][0] = data[0] + similarities = [1] + for i in data[1:]: + similarities.append() + print(center) + return + + +def similarity(s1, s2): + + return -- Gitee