【问题标题】:Find Distinct IP Addresses Based on First Two Octets?根据前两个八位字节查找不同的 IP 地址?
【发布时间】:2013-05-13 01:45:39
【问题描述】:

我在IP 地址上有一个数组跟踪登录,我想知道其中有多少是不同的。但是,经常会有来自X.Y.1.2X.Y.2.4IP地址的登录。这通常意味着它来自同一个本地区域、ISP 或组织。出于我们的目的,我们不想将它们视为不同的。

如何过滤掉前两个八位字节相同的IP 地址?

【问题讨论】:

  • 编程语言?
  • John H :我刚刚意识到您没有将您的问题的任何答案标记为“已接受”。如果问题的回答令您满意,请这样做。

标签: arrays ip


【解决方案1】:

好吧,由于没有给出语言,我将尝试使用 shell 脚本。假设所有 IP 地址都在一个名为“ipaddresses.txt”的文本文件中:

cut -d . -f 1-2 ipaddresses.txt | sort | uniq

编辑:因为它必须在一个数组中,我会在 python 中尝试:

>>> addr = ['1.2.3.4', '1.2.55.66', '33.22.11.0', '33.22.11.1']
>>> print set(['.'.join(x.split('.')[0:2]) for x in addr])
set(['33.22', '1.2'])
>>> # just show how many:
>>> print len(set(['.'.join(x.split('.')[0:2]) for x in addr]))
2

【讨论】:

    【解决方案2】:

    在红宝石中

    ip = ['1.2.3.4', '1.2.3.5', '10.111.12.13','1.9.1.2']
    
    ip.collect{|a| a.split('.')[0..1].join('.')}.uniq
    

    输出

    ["1.2", "10.111", "1.9"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-05
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 2020-10-17
      • 2016-11-27
      • 1970-01-01
      • 2018-10-04
      相关资源
      最近更新 更多