childe / gohangout

使用 golang 模仿的 Logstash。用于消费 Kafka 数据,处理后写入 ES、Clickhouse 等。
MIT License
1.01k stars 234 forks source link

IPIP插件返回结果中的isp字段中英文差异 #151

Closed yeyuqiu closed 1 year ago

yeyuqiu commented 2 years ago

我在mac上执行,返回结果是ok的,isp字段返回移动,但是我部署到容器环境中,执行结果就有差异,isp字段返回chinamobile.com,除了运营商字段,其他字段结果都是相同的,都是中文,造成这种差异的原因可能有哪些

childe commented 2 years ago

看一下你的 IPIP 的配置 @yeyuqiu

yeyuqiu commented 2 years ago

找到原因了,我前后2次用的是IPDB不同版本,如果是企业定制版,isp字段就会返回chinamobile.com,新增的line字段才表示运营商中文

代码示例:

package main

import (
    "fmt"
    "github.com/ipipdotnet/ipdb-go"
)

func main() {
    var s []string
    var m map[string]string

    db, _ := ipdb.NewCity("allOld.ipdb")
    fmt.Println(db.Fields()) // database support fields
    s, _ = db.Find("223.104.150.83", "CN")
    fmt.Println(s)
    m, _ = db.FindMap("223.104.150.83", "CN")
    fmt.Println(m) // return map[string]string

    fmt.Println()

    db, _ = ipdb.NewCity("allNew.ipdb")
    fmt.Println(db.Fields()) // database support fields
    s, _ = db.Find("223.104.150.83", "CN")
    fmt.Println(s)
    m, _ = db.FindMap("223.104.150.83", "CN")
    fmt.Println(m) // return map[string]string
}

输出结果:

[country_name region_name city_name owner_domain isp_domain latitude longitude timezone utc_offset china_admin_code idd_code country_code continent_code]
[中国 江苏 南京  移动 32.060255 118.796877 Asia/Shanghai UTC+8 320100 86 CN AP]
map[china_admin_code:320100 city_name:南京 continent_code:AP country_code:CN country_name:中国 idd_code:86 isp_domain:移动 latitude:32.060255 longitude:118.796877 owner_domain: region_name:江苏 timezone:Asia/Shanghai utc_offset:UTC+8]

[country_name region_name city_name owner_domain isp_domain latitude longitude timezone utc_offset china_admin_code idd_code country_code continent_code line]
[中国 江苏 南京  chinamobile.com 32.060255 118.796877 Asia/Shanghai UTC+8 320100 86 CN AP 移动]
map[china_admin_code:320100 city_name:南京 continent_code:AP country_code:CN country_name:中国 idd_code:86 isp_domain:chinamobile.com latitude:32.060255 line:移动 longitude:118.796877 owner_domain: region_name:江苏 timezone:Asia/Shanghai utc_offset:UTC+8]
yeyuqiu commented 2 years ago

我修复了下:https://github.com/childe/gohangout/pull/152

childe commented 2 years ago

谢谢。 PR 里面我提了一些 Review,我们一起看下吧。

childe commented 2 years ago

另外,我有些怀疑,这里的 Line 就是 ISP 的中文信息吗?是不是可能会是别的东西,或者额外的更多信息?

@heneyin