【问题标题】:Clustering ip-addresses on domain names在域名上集群 IP 地址
【发布时间】:2019-04-24 07:00:06
【问题描述】:

我有一个 ip 网络,它基本上是一个连续的 ip 地址列表。从这个列表中,我想将 IP 地址范围聚集成独立的实体。我想为范围内的每个 IP 提供一组属性,例如生存时间、名称服务器和与之关联的域名。

然后我想确定每个 IP 地址与其邻居之间的距离,并根据最短距离开始聚类。

我的问题在于距离函数。 TTL 是一个数字,所以这应该不是问题。域名服务器和域名是字符串,但是如何将它们表示为向量中的数字?

基本上,如果 2 个 IP 地址具有相同的名称服务器或非常相似的域名(等于 2LD),您希望它们之间的距离更小。我已经研究过 word2vec 之类的东西,但实际上找不到有用的实现。

【问题讨论】:

    标签: python ip ip-address word2vec hierarchical-clustering


    【解决方案1】:

    我会尝试像这样使用 difflib。

    from difflib import SequenceMatcher
    
    def similarity(a, b):
        return SequenceMatcher(None, a, b).ratio()
    

    然后,您可以针对每组名称调用该函数以获取相似性分数并根据该分数对它们进行分组。

    similarity("server1","server1")
    1.0
    
    similarity("Server1","Server2")
    0.8571428571428571
    
    similarity("foo","bar")
    0.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 1970-01-01
      • 2016-11-23
      • 2021-02-12
      • 1970-01-01
      相关资源
      最近更新 更多