日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

IP解析函數(shù)

本文介紹IP解析函數(shù)的語法規(guī)則,包括參數(shù)解釋、函數(shù)示例等。

函數(shù)列表

函數(shù)

說明

geo_parse

根據(jù)IP地址解析出所屬國家、省份和市信息。

ip_cidrmatch

判斷IP地址是否屬于CIDR地址塊。

ip_version

判斷IP地址為IPv4還是IPv6。

ip_type

判斷IP地址為私有地址還是公有地址。

ip_makenet

將單個IP地址轉(zhuǎn)換為CIDR地址塊。

ip_to_format

將輸入的CIDR地址塊按照Prefixlen或者Netmask格式輸出。

ip_overlaps

判斷兩個網(wǎng)段是否存在重疊。

ip2long

將字符串格式的IP地址轉(zhuǎn)換成長整型數(shù)據(jù)。

long2ip

將長整型數(shù)據(jù)轉(zhuǎn)換成字符串格式的IP地址。

geo_parse

根據(jù)IP地址解析出所屬國家、省份和市信息。

  • 函數(shù)格式

    geo_parse(ip, ip_db="SLS-GeoIP", keep_fields=None, provider="ipip", ip_sep=None)
  • 參數(shù)說明

    參數(shù)名稱

    參數(shù)類型

    是否必填

    說明

    ip

    String

    IP地址,表示解析該IP地址所屬國家、省分和市信息。如果包含多個IP地址,可通過ip_sep參數(shù)指定分割符。

    ip_db

    String

    解析IP地址所屬國家、省份和市信息所使用的IP地址庫。

    • SLS-GeoIP:SLS內(nèi)置IP庫,取值為SLS-GeoIP,默認使用該選項。為保證精確度,SLS內(nèi)置IP庫每天更新一次,使用時無需額外配置。

    • 自選IP庫:使用res_oss_file(endpoint, ak_id, ak_key, bucket, file, format='text', change_detect_interval=0,fetch_interval=2,refresh_retry_max=60,encoding='utf8',error='ignore'),參數(shù)定義請參見res_oss_file

    keep_fields

    Tuple

    返回結(jié)果中包含的key信息。

    • 當通過SLS內(nèi)置IP庫解析時,默認返回信息如下:

      • city:城市名稱。

      • province:省份名稱。

      • country:國家名稱。

      • city_en:城市的行政區(qū)劃代碼或者英文名稱。

      • province_en:省份的行政區(qū)劃代碼或者英文名稱。

      • country_en:國家或地區(qū)的代碼或者英文名稱。

      • isp:所屬網(wǎng)絡(luò)運營商名稱。

      • lat:IP地址所在位置的緯度。

      • lon:IP地址所在位置的經(jīng)度。

    • 當通過自選IP庫解析時,默認返回信息如下:

      • city:城市名稱。

      • province:省份名稱。

      • country:國家名稱。

    例如keep_fields=("city","country")表示僅輸出citycountry字段信息。

    此外keep_fields也支持重命名。例如(("city","cty"),("country","state"))表示以ctystate形式輸出。

    provider

    String

    僅當ip_db取值為自選IP庫時,該參數(shù)有效。取值如下:

    • ipip:默認值。使用ipdb庫提供的二進制IP地址庫,下載地址為ipip

    • ip2location:使用全球IP二進制解析庫,下載地址為ip2location。僅支持二進制包。

    ip_sep

    String

    IP地址分隔符,用于將包含多個IP地址的字符串分割為多個IP地址,解析結(jié)果通過JSON格式返回。默認值為None,表示不進行分隔。

  • 返回結(jié)果

    返回字典形式數(shù)據(jù),包含如下內(nèi)容:

    {
      "city": "...",
      "province":"...",
      "country": "..."
    }
  • 函數(shù)示例

    • 示例1:使用SLS內(nèi)置IP庫查詢。

      • 原始日志

        ip : 203.0.113.1
      • 加工規(guī)則

        e_set("geo", geo_parse(v("ip")))
      • 加工結(jié)果

        ip : 203.0.113.1
        geo: {"city":"杭州","province":"浙江省","country":"中國","isp":"移動","lat":30.16,"lon":120.12}
    • 示例2:使用SLS內(nèi)置IP庫查詢,解析包含多個IP地址的日志字段,并返回每個IP地址所屬的國家、省份和市信息。

      • 原始日志

        ip : 203.0.113.4, 192.0.2.2, 198.51.100.2
      • 加工規(guī)則

        e_set("geo", geo_parse(v("ip"), ip_sep=","))
      • 加工結(jié)果

        ip : 203.0.113.4, 192.0.2.2, 198.51.100.2
        geo : {"203.0.113.4": {"country_en": "CN", "province_en": "330000", "city_en": "330200", "country": "中國", "province": "浙江省", "city": "寧波市", "isp": "電信", "lat": 29.8782, "lon": 121.549}, "192.0.2.2": {"country_en": "CN", "province_en": "320000", "city_en": "321300", "country": "中國", "province": "江蘇省", "city": "宿遷市", "isp": "電信", "lat": 33.9492, "lon": 118.296}, "198.51.100.2": {"country_en": "CN", "province_en": "330000", "city_en": "330500", "country": "中國", "province": "浙江省", "city": "湖州市", "isp": "電信", "lat": 30.8703, "lon": 120.093}}
    • 示例3:使用自選IP庫查詢。

      • 原始日志

        ip : 203.0.113.1
      • 加工規(guī)則

        e_set("geo",geo_parse(v("ip"), ip_db=res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',
                                                         ak_id='your ak_id',
                                                         ak_key='your ak_key',
                                                         bucket='your bucket', file='ipipfree.ipdb',
                                                                       format='binary',change_detect_interval=20)))
      • 加工結(jié)果

        ip : 203.0.113.1
        geo : {"city": "杭州", "province":"浙江省","country": "中國"}
    • 示例4: 使用自選IP庫查詢,選擇輸出關(guān)鍵key字段信息并且重命名key字段名稱。

      • 原始日志

        ip : 203.0.113.1
      • 加工規(guī)則

        e_set("geo",geo_parse(v("ip"), ip_db=res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',
                                                         ak_id='your ak_id',
                                                         ak_key='your ak_key',
                                                         bucket='your bucket', file='ipipfree.ipdb',
                                                                       format='binary',change_detect_interval=20),keep_fields=(("city","cty"),("country","state"),("province","pro"))))
      • 加工結(jié)果

        ip : 203.0.113.1
        geo : { "state": "中國","pro": "浙江省","cty": "杭州"}
    • 示例5:使用自選IP庫查詢,選擇輸出關(guān)鍵key字段信息。

      • 原始日志

        ip : 203.0.113.1
      • 加工規(guī)則

        e_set("geo",geo_parse(v("ip"), ip_db=res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',
                                                         ak_id='your ak_id',
                                                         ak_key='your ak_key',
                                                         bucket='your bucket', file='ipipfree.ipdb',
                                                                       format='binary',change_detect_interval=20),keep_fields=("country","province")))
      • 加工結(jié)果

        ip : 203.0.113.1
        geo : { "country": "中國","province": "浙江省"}
    • 示例6:使用自選IP庫查詢,使用ip2location全球IP解析庫輸出關(guān)鍵key字段信息 。

      • 原始日志

        ip : 203.0.113.2
      • 加工規(guī)則

        e_set("geo", geo_parse(v("ip"), ip_db=res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',ak_id="your ak_id", ak_key="your ak_secret", bucket='log-etl-staging', file='your ip2location bin file', format='binary', change_detect_interval=20),provider="ip2location"))
      • 加工結(jié)果

        ip : 203.0.113.2
        geo : {"city":"Dearborn","province":"Michigan","country":"United States"}

      數(shù)據(jù)加工使用的是ip2location的開源Python SDK。ip2location Python SDK支持解析的字段如下所示,數(shù)據(jù)加工同步支持解析如下所有字段。如果您在使用過程中發(fā)現(xiàn)無法解析出目標字段,請檢查使用的ip2location解析庫是否包含目標字段。

      country_short
      country_long /  數(shù)據(jù)加工使用country字段替代
      region  / 數(shù)據(jù)加工使用province字段替代
      city
      isp
      latitude
      longitude
      domain
      zipcode
      timezone
      netspeed
      idd_code
      area_code
      weather_code
      weather_name
      mcc
      mnc
      mobile_brand
      elevation
      usage_type                               

      更多信息,請參見ip2location Python SDK

    • 示例7:使用自選IP庫查詢,解析包含多個IP地址的日志字段,并返回每個IP地址所屬的國家省市信息。

      • 原始日志

        ip : 203.0.113.3, 192.0.2.1, 198.51.100.1
      • 加工規(guī)則

        e_set("geo", geo_parse(v("ip"), ip_db=res_oss_file(endpoint='http://oss-cn-hangzhou.aliyuncs.com',
                                                                       ak_id="ak_id",
                                                                       ak_key="ak_secret",
                                                                       bucket='log-etl-staging',
                                                                       file='calendar.csv/IP2LOCATION-LITE-DB3.BIN',
                                                                       format='binary', change_detect_interval=20),
                                        provider="ip2location", ip_sep=","))
      • 加工結(jié)果

        ip : 203.0.113.3, 192.0.2.1, 198.51.100.1
        geo : {"203.0.113.3": {"city": "Dearborn", "province": "Michigan", "country": "United States"}, "192.0.2.1": {"city": "Hangzhou", "province": "Zhejiang", "country": "China"}, "198.51.100.1": {"city": "Hangzhou", "province": "Zhejiang", "country": "China"}}

ip_cidrmatch

根據(jù)IP地址是否與CIDR子網(wǎng)匹配返回布爾值。使用此函數(shù)來確定IP地址是否屬于CIDR地址塊。當IP地址屬于CIDR地址塊時,返回True,否則返回False。支持IPv4和IPv6。

  • 函數(shù)格式

    ip_cidrmatch(cidr_subnet, ip,default="")
  • 參數(shù)說明

    參數(shù)名稱

    參數(shù)類型

    是否必填

    說明

    cidr_subnet

    String

    輸入CIDR地址塊,例如:192.168.1.0/24。

    ip

    String

    輸入IP地址。

    default

    String

    設(shè)置default值(可為空),如果IP地址與CIDR地址塊無法匹配時,返回該值。

  • 返回結(jié)果

    如果IP地址與CIDR地址塊匹配,返回True,否則返回False。

  • 函數(shù)示例

    • 示例1:IP地址(IPv4)與CIDR地址塊匹配,返回true。

      • 原始日志

        cidr_subnet: 192.168.1.0/24
        ip: 192.168.1.100
      • 加工規(guī)則

        e_set("is_belong",ip_cidrmatch(v("cidr_subnet"),v("ip")))
      • 加工結(jié)果

        cidr_subnet: 192.168.1.0/24
        ip: 192.168.1.100
        is_belong: true
    • 示例2:IP地址(IPv4)與CIDR地址塊不匹配,返回false。

      • 原始日志

        cidr_subnet: 192.168.1.0/24
        ip: 10.10.1.100
      • 加工規(guī)則

        e_set("is_belong",ip_cidrmatch(v("cidr_subnet"),v("ip")))
      • 加工結(jié)果

        cidr_subnet: 192.168.1.0/24
        ip: 10.10.1.100
        is_belong: false
    • 示例3:IP地址與CIDR地址塊無法匹配,返回unknown。

      • 原始日志

        cidr_subnet: 192.168.1.0/24
        ip: a
      • 加工規(guī)則

        e_set("is_belong",ip_cidrmatch(v("cidr_subnet"),v("ip"),default="unknown"))
      • 加工結(jié)果

        cidr_subnet: 192.168.1.0/24
        ip: a
        is_belong: unknown

ip_version

判斷IP地址為IPv4還是IPv6。若是IPv4類型IP地址,則返回IPv4,若是IPv6類型IP地址,則返回IPv6。

  • 函數(shù)格式

    ip_version(ip,default="")
  • 參數(shù)說明

    參數(shù)名稱

    參數(shù)類型

    是否必填

    說明

    ip

    String

    輸入IP地址。

    default

    String

    設(shè)置default值(可為空),無法判斷IP地址版本時,返回該值。

  • 返回結(jié)果

    返回IPv4或者IPv6。

  • 函數(shù)示例

    • 示例1:判斷IPv4地址的版本,返回IPv4。

      • 原始日志

        ip: 192.168.1.100
      • 加工規(guī)則

        e_set("version",ip_version(v("ip")))
      • 加工結(jié)果

        ip: 192.168.1.100
        version: IPv4
    • 示例2:判斷IPv6地址的版本,返回IPv6。

      • 原始日志

        ip: ::1
      • 加工規(guī)則

        e_set("version",ip_version(v("ip")))
      • 加工結(jié)果

        ip: ::1
        version: IPv6

ip_type

判斷IP地址是私有地址還是公有地址,返回IP類型包括private、reserved、loopback、public和allocated ripe ncc等。

  • 函數(shù)格式

    ip_type(ip,default="")
  • 參數(shù)說明

    參數(shù)名稱

    參數(shù)類型

    是否必填

    說明

    ip

    String

    輸入IP地址。

    default

    String

    設(shè)置default值(可為空),無法判斷IP地址類型時,返回該值。

  • 返回結(jié)果

    返回IP類型包括private、reserved、loopback、public和allocated ripe ncc等。

  • 函數(shù)示例

    • 示例1: 判斷IP地址,返回loopback。

      • 原始日志

        ip: 127.0.0.1
      • 加工規(guī)則

        e_set("type",ip_type(v("ip")))
      • 加工結(jié)果

        ip: 127.0.0.1
        type: loopback
    • 示例2: 判斷IP地址,返回private。

      • 原始日志

        ip: 47.100.XX.XX
      • 加工規(guī)則

        e_set("type",ip_type(v("ip")))
      • 加工結(jié)果

        ip: 47.100.XX.XX
        type: private
    • 示例3: 判斷IP地址,返回public。

      • 原始日志

        ip: 47.100.XX.XX
      • 加工規(guī)則

        e_set("type",ip_type(v("ip")))
      • 加工結(jié)果

        ip: 47.100.XX.XX
        type: public
    • 示例4: 判斷IPv6地址,返回loopback。

      • 原始日志

        ip: ::1
      • 加工規(guī)則

        e_set("type",ip_type(v("ip")))
      • 加工結(jié)果

        ip: ::1
        type: loopback
    • 示例5:判斷IPv6地址,返回allocated ripe ncc。

      • 原始日志

        ip: 2001:0658:022a:cafe:0200::1
      • 加工規(guī)則

        e_set("type",ip_type(v("ip")))
      • 加工結(jié)果

        ip: 2001:0658:022a:cafe:0200::1
        type: allocated ripe ncc

ip_makenet

將單個IP地址轉(zhuǎn)換為CIDR地址塊。

  • 函數(shù)格式

    ip_makenet(ip, subnet_mask=None,default="")
  • 參數(shù)說明

    參數(shù)名稱

    參數(shù)類型

    是否必填

    說明

    ip

    String

    輸入IP地址。

    subnet_mask

    String

    輸入子網(wǎng)掩碼,例如:255.255.255.0。

    說明

    如果ip中輸入的是IP網(wǎng)段,則子網(wǎng)掩碼可以為空。

    default

    String

    設(shè)置default的值(可為空),無法將IP地址轉(zhuǎn)成CIDR地址塊時,返回該值。

  • 返回結(jié)果

    返回CIDR地址塊。

  • 函數(shù)示例

    • 示例1: 將IP地址轉(zhuǎn)換為CIDR地址塊。

      • 原始日志

        ip: 192.168.1.0
      • 加工規(guī)則

        e_set("makenet",ip_makenet(v("ip"),"255.255.255.0"))
      • 加工結(jié)果

        ip: 192.168.1.0
        makenet: 192.168.1.0/24
    • 示例2:將IP地址范圍轉(zhuǎn)換為CIDR地址塊。

      • 原始日志

        ip: 192.168.1.0-192.168.1.255
      • 加工規(guī)則

        e_set("makenet",ip_makenet(v("ip")))
      • 加工結(jié)果

        ip: 192.168.1.0-192.168.1.255
        makenet: 192.168.1.0/24
    • 示例3:將IP地址范圍轉(zhuǎn)換為CIDR地址塊。

      • 原始日志

        ip: 192.168.1.0/255.255.255.0
      • 加工規(guī)則

        e_set("makenet",ip_makenet(v("ip")))
      • 加工結(jié)果

        ip: 192.168.1.0/255.255.255.0
        makenet: 192.168.1.0/24

ip_to_format

將輸入的CIDR地址塊按照Prefixlen或者Netmask格式輸出。

  • 函數(shù)格式

    ip_to_format(cidr_subnet, want_prefix_len=0,default="")
  • 參數(shù)說明

    參數(shù)名稱

    參數(shù)類型

    是否必填

    說明

    cidr_subnet

    String

    輸入CIDR地址塊,例如:192.168.1.0/24

    want_prefix_len

    Int

    設(shè)置返回格式,默認為0。

    • 0:無格式返回。

    • 1:按照prefix格式返回。

    • 2:按照netmask格式返回。

    • 3:按照IP網(wǎng)段格式返回。

    default

    String

    設(shè)置default的值(可為空),無法將輸入的CIDR地址塊按照格式輸出時,返回該值。

  • 返回結(jié)果

    返回特定格式的IP地址。

  • 函數(shù)示例

    • 示例1: 將輸入的CIDR地址塊直接輸出。

      • 原始日志

        ip: 192.168.1.0/24
      • 加工規(guī)則

        e_set("strNormal",ip_to_format(v("ip"),0))
      • 加工結(jié)果

        ip: 192.168.1.0/24
        strNormal: 192.168.1.0/24
    • 示例2: 將輸入的CIDR地址塊按照prefix格式輸出。

      • 原始日志

         ip: 192.168.1.0/24
      • 加工規(guī)則

        e_set("strNormal",ip_to_format(v("ip"),1))
      • 加工結(jié)果

        ip: 192.168.1.0/24
        strNormal: 192.168.1.0/24
    • 示例3: 將輸入的CIDR地址塊按照netmask格式輸出。

      • 原始日志

        ip: 192.168.1.0/24
      • 加工規(guī)則

        e_set("strNormal",ip_to_format(v("ip"),2))
      • 加工結(jié)果

        ip: 192.168.1.0/24
        strNormal: 192.168.1.0/255.255.255.0
    • 示例4: 將輸入的CIDR地址塊按照IP地址網(wǎng)段格式輸出。

      • 原始日志

        ip: 192.168.1.0/24
      • 加工規(guī)則

        e_set("strNormal",ip_to_format(v("ip"),3))
      • 加工結(jié)果

        ip: 192.168.1.0/24
        strNormal: 192.168.1.0-192.168.1.255

ip_overlaps

判斷兩個網(wǎng)段是否存在重疊。

  • 函數(shù)格式

    ip_overlaps(cidr_subnet, cidr_subnet2,default="")
  • 參數(shù)說明

    參數(shù)名稱

    參數(shù)類型

    是否必填

    說明

    cidr_subnet

    String

    輸入CIDR地址塊1。

    cidr_subnet2

    String

    輸入CIDR地址塊2。

    default

    String

    設(shè)置default的值(可為空),無法判斷兩個CIDR地址塊是否重疊時,返回該值。

  • 返回結(jié)果

    • 如果兩個CIDR地址塊不重疊,則返回0。

    • 如果兩個CIDR地址塊重疊在結(jié)束位置,則返回1。

    • 如果兩個CIDR地址塊重疊在開始位置,則返回-1。

  • 函數(shù)示例

    • 示例1:兩個CIDR地址塊不重疊。

      • 原始日志

        cidr1: 192.168.0.0/23
        cidr2: 192.168.2.0/24
      • 加工規(guī)則

        e_set("overlaps",ip_overlaps(v("cidr1"),v("cidr2")))
      • 加工結(jié)果

        cidr1: 192.168.0.0/23
        cidr2: 192.168.2.0/24
        overlaps: 0
    • 示例2:兩個CIDR地址塊在開始位置重疊。

      • 原始日志

        cidr1: 192.168.1.0/24
        cidr2: 192.168.0.0/23
      • 加工規(guī)則

        e_set("overlaps",ip_overlaps(v("cidr1"),v("cidr2")))
      • 加工結(jié)果

        cidr1: 192.168.1.0/24
        cidr2: 192.168.0.0/23
        overlaps: -1
    • 示例3:兩個CIDR地址塊在結(jié)束位置重疊。

      • 原始日志

        cidr1: 192.168.0.0/23
        cidr2: 192.168.1.0/24
      • 加工規(guī)則

        e_set("overlaps",ip_overlaps(v("cidr1"),v("cidr2")))
      • 加工結(jié)果

        cidr1: 192.168.0.0/23
        cidr2: 192.168.1.0/24
        overlaps: 1

ip2long

使用ip2long函數(shù)將字符串格式的IP地址轉(zhuǎn)換成長整型數(shù)據(jù)。

  • 函數(shù)格式

    ip2long(value,default=0)
  • 參數(shù)說明

    參數(shù)名稱

    參數(shù)類型

    是否必填

    說明

    value

    String

    填入需要被轉(zhuǎn)換的值。

    default

    String

    某個不合法的IP地址被轉(zhuǎn)換成的值。支持自定義,例如:0。

  • 返回結(jié)果

    返回有效IP轉(zhuǎn)換成功后的長整型數(shù)據(jù)。

  • 函數(shù)示例

    • 示例1:默認情況

      • 原始日志

        ip: 192.168.0.100
      • 加工規(guī)則

        e_set("long_ip",ip2long(v("ip")))
      • 加工結(jié)果

        ip: 192.168.0.100
        long_ip: 167772160
    • 示例2:非法IP情況

      • 原始日志

        ip: 47.100.XX.XX
      • 加工規(guī)則

        e_set("long_ip",ip2long(v("ip"), "ignore"))
      • 加工結(jié)果

        ip:47.100.XX.XX
        long_ip:ignore

long2ip

使用long2ip函數(shù)將長整型數(shù)據(jù)轉(zhuǎn)換成字符串格式的IP地址。

  • 函數(shù)格式

    long2ip(value,default="")
  • 參數(shù)說明

    參數(shù)名稱

    參數(shù)類型

    是否必填

    說明

    value

    String

    填入需要被轉(zhuǎn)換的值。

    default

    String

    表示將不合法的長整型數(shù)據(jù)轉(zhuǎn)成空字符串,支持自定義。

  • 返回結(jié)果

    返回有效長整型轉(zhuǎn)換成功后的IP地址。

  • 函數(shù)示例

    • 示例1:默認情況

      • 原始日志

        long: 167772160
      • 加工規(guī)則

        e_set("ip",long2ip(v("long")))
      • 加工結(jié)果

        long: 167772160
        ip: 192.168.0.100
    • 示例2:長整型轉(zhuǎn)換IP地址失敗情況

      • 原始日志

        long: 4294967296
      • 加工規(guī)則

        e_set("ip",long2ip(v("long")))
      • 加工結(jié)果

        long: 4294967296
        ip: 
    • 示例3:長整型轉(zhuǎn)換IP地址失敗時自定義的錯誤處理。

      • 原始日志

        long: 4294967296
      • 加工規(guī)則

        e_set("ip",long2ip(v("long"),default="xxx"))
      • 加工結(jié)果

        long: 4294967296
        ip: xxx