首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在弹性搜索中查询IP范围?

如何在弹性搜索中查询IP范围?
EN

Stack Overflow用户
提问于 2020-06-22 03:03:49
回答 1查看 3.9K关注 0票数 2

我想在ELK中查询IP范围:172.16.0.0到172.31.0.0。

我尝试了两个查询方法,但是失败了。

代码语言:javascript
运行
复制
{
  "query": {
    "bool": {
      "should": [
        {
          "regexp": {
            "DstIP": "172.(3[0-1]|1[6-9]|2[0-9]).*"
          }
        }
      ],
      "minimum_should_match": 1
    }
  }
}
代码语言:javascript
运行
复制
{
  "query": {
    "range": {
      "DstIP": {
        "gte": "172.16.0.0",
        "lte": "172.31.0.0"
      }
    }
  }
}

如何在ELK中查询IP范围?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-22 03:26:42

要使范围查询在IP值上正确工作,有必要将字段数据类型定义为.

下面是带有映射、示例文档和搜索查询的工作示例。

映射:

代码语言:javascript
运行
复制
{
  "mappings": {
    "properties": {
      "dest": {
        "type": "ip"
      }
    }
  }
}

索引数据:

然后我拿了几份这样的样本文件:

代码语言:javascript
运行
复制
{ "dest":"172.16.0.0"}
{ "dest":"172.31.0.0"}
{ "dest":"172.21.0.0"}
{ "dest":"172.1.0.0" }
{ "dest":"172.12.0.0"}

搜索查询:

代码语言:javascript
运行
复制
{
  "query": {
    "range": {
      "dest": {
        "gte": "172.16.0.0",
        "lte": "172.31.0.0"
      }
    }
  }
}

搜索结果:

代码语言:javascript
运行
复制
 "hits": [
         {
            "_index": "foo4",
            "_type": "_doc",
            "_id": "1",
            "_score": 1.0,
            "_source": {
               "dest": "172.16.0.0"
            }
         },
         {
            "_index": "foo4",
            "_type": "_doc",
            "_id": "2",
            "_score": 1.0,
            "_source": {
               "dest": "172.31.0.0"
            }
         },
         {
            "_index": "foo4",
            "_type": "_doc",
            "_id": "3",
            "_score": 1.0,
            "_source": {
               "dest": "172.21.0.0"
            }
         }
      ]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62506849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档