全部產品
Search
文件中心

Simple Log Service:IP函數

更新時間:Jun 03, 2026

本文介紹IP函數的基本文法及樣本。

Log Service支援如下IP函數。

重要

在Log Service分析語句中,表示字串的字元必須使用單引號('')包裹,無符號包裹或被雙引號("")包裹的字元表示欄位名或列名。例如:'status'表示字串status,status"status"表示日誌欄位status。

函數類型

函數名稱

文法

說明

支援SQL

支援SPL

IPv4地址函數

ip_to_city函數

ip_to_city(x)

分析目標IPv4地址所屬城市。

返回結果為城市的中文名稱。

×

ip_to_city(x, 'en')

分析目標IPv4地址所屬城市。

返回結果為城市的行政區劃代碼。

×

ip_to_city_geo函數

ip_to_city_geo(x)

分析目標IPv4地址所屬城市的經緯度。此函數返回的是城市經緯度,每個城市只有一個經緯度。

×

ip_to_country函數

ip_to_country(x)

分析目標IPv4地址所屬國家或地區。

返回結果為國家或地區的中文名稱。

×

ip_to_country(x, 'en')

分析目標IPv4地址所屬國家或地區。

返回結果為國家或地區的代碼。

×

ip_to_country_code函數

ip_to_country_code(x)

分析目標IPv4地址所屬國家或地區。

返回結果為國家或地區的代碼。

×

ip_to_domain函數

ip_to_domain(x)

判斷目標IPv4地址是內網地址還是外網地址。

×

ip_to_geo函數

ip_to_geo(x)

分析目標IPv4地址所在位置的經緯度。

×

ip_to_provider函數

ip_to_provider(x)

分析目標IPv4地址所對應的網路電訊廠商。

×

ip_to_province函數

ip_to_province(x)

分析目標IPv4地址所屬

返回結果為的中文名稱。

×

ip_to_province(x, 'en')

分析目標IPv4地址所屬

返回結果為的行政區劃代碼。

×

IPv4網段函數

ip_prefix函數

ip_prefix(x, prefix_bits)

擷取目標IPv4地址的首碼。

×

is_prefix_subnet_of函數

is_prefix_subnet_of(x, y)

判斷目標IPv4網段是否為某網段的子網。

×

is_subnet_of函數

is_subnet_of(x, y)

判斷目標IPv4地址是否在某網段內。

×

ip_subnet_max函數

ip_subnet_max(x)

擷取IPv4網段中的最大IP地址。

×

ip_subnet_min函數

ip_subnet_min(x)

擷取IPv4網段中的最小IP地址。

×

ip_subnet_range函數

ip_subnet_range(x)

擷取IPv4網段範圍。

×

IPv6地址函數

ipv6_to_city函數

ipv6_to_city(x)

分析目標IPv6地址所屬城市的名稱。

×

ipv6_to_city_code函數

ipv6_to_city_code(x)

分析目標IPv6地址所屬城市的行政區劃代碼。

×

ipv6_to_city_geo函數

ipv6_to_city_geo(x)

分析目標IPv6地址所屬城市的經緯度。

×

ipv6_to_country函數

ipv6_to_country(x)

分析目標IPv6地址所屬國家或地區。

×

ipv6_to_country_code函數

ipv6_to_country_code(x)

分析目標IPv6地址所屬國家或地區的代碼。

×

ipv6_to_domain函數

ipv6_to_domain(x)

判斷目標IPv6地址是內網地址還是外網地址。

×

ipv6_to_provider函數

ipv6_to_provider(x)

分析目標IPv6地址所對應的網路電訊廠商。

×

ipv6_to_province函數

ipv6_to_province(x)

分析目標IPv6地址所屬省份。

×

ipv6_to_province_code函數

ipv6_to_province_code(x)

分析目標IPv6地址所屬省份的行政區劃代碼。

×

ip_to_city函數

ip_to_city函數用於分析目標IPv4地址所屬城市。

文法

  • 返回城市的中文名稱。

    ip_to_city(x)
  • 返回城市的行政區劃代碼。

    ip_to_city(x,'en')

參數說明

參數

說明

x

參數值為IPv4地址。

傳回值類型

varchar類型。

樣本

統計來自不同城市的請求的平均時間、最大時間以及最大時間對應的請求ID。

  • 查詢和分析語句

    * |
    SELECT
      AVG(request_time) AS avg_request_time,
      MAX(request_time) AS max_request_time,
      MAX_BY(requestId, request_time) AS requestId,
      ip_to_city(client_ip) AS city
    GROUP BY
      city
  • 查詢和分析結果返回3條記錄,分別對應天津市(avg_request_time為44.85,max_request_time為80.0,requestId為i-02)、麗江市(avg_request_time為46.47,max_request_time為80.0,requestId為i-01)和鶴崗市(avg_request_time為43.87,max_request_time為80.0,requestId為i-01)。

ip_to_city_geo函數

ip_to_city_geo函數用於分析目標IPv4地址所屬城市的經緯度。此函數返回的是城市經緯度,每個城市只有一個經緯度。

文法

ip_to_city_geo(x)

參數說明

參數

說明

x

參數值為IPv4地址。

傳回值類型

varchar類型,格式為緯度,經度

樣本

統計IPv4地址的經緯度,確認用戶端分布情況。

  • 查詢和分析語句

    * |
    SELECT
      count(*) AS PV,
      ip_to_city_geo(client_ip) AS geo
    GROUP BY
      geo
    ORDER BY
      PV DESC
  • 查詢和分析結果如下。查詢結果返回兩行資料:第一行 PV 為 9113,geo 為 39.9288,116.389(對應北京地區);第二行 PV 為 5784,geo 為 31.2222,121.458060(對應上海地區)。ip_to_city_geo 函數傳回值格式為"緯度,經度"。

ip_to_country函數

ip_to_country函數用於分析目標IPv4地址所屬國家或地區。

文法

  • 返回國家或地區的中文名稱。

    ip_to_country(x)
  • 返回國家或地區的代碼。

    ip_to_country(x,'en')

參數說明

參數

說明

x

參數值為IPv4地址。

傳回值類型

varchar類型。

樣本

統計來自不同國家或地區的請求的平均時間、最大時間以及最大時間對應的請求ID。

  • 查詢和分析語句

    * |
    SELECT
      AVG(request_time) AS avg_request_time,
      MAX(request_time) AS max_request_time,
      MAX_BY(requestId, request_time) AS requestId,
      ip_to_country(client_ip) AS country
    GROUP BY
      country
  • 查詢和分析結果。查詢結果返回3行資料:中國香港的 avg_request_time 為45.27、max_request_time 為80.0、requestId 為i-02;澳大利亞的 avg_request_time 為47.08、max_request_time 為80.0、requestId 為i-01;印度的 avg_request_time 為39.39、max_request_time 為77.0、requestId 為i-01。

ip_to_country_code函數

ip_to_country_code函數用於分析目標IPv4地址所屬國家或地區,返回國家或地區的代碼。

文法

ip_to_country_code(x)

參數說明

參數

說明

x

參數值為IPv4地址。

傳回值類型

varchar類型。

樣本

統計來自不同國家或地區的請求的平均時間、最大時間以及最大時間對應的請求ID。

  • 查詢和分析語句

    * |
    SELECT
      AVG(request_time) AS avg_request_time,
      MAX(request_time) AS max_request_time,
      MAX_BY(requestId, request_time) AS requestId,
      ip_to_country_code(client_ip) AS country
    GROUP BY
      country
  • 查詢和分析結果返回兩行資料:第一行 avg_request_time 為 45.012,max_request_time 為 80.0,requestId 為 i-01,country 為 MO;第二行 avg_request_time 為 46.286,max_request_time 為 77.0,requestId 為 i-02,country 為 GB

ip_to_domain函數

ip_to_domain函數用於判斷目標IPv4地址是內網地址還是外網地址。

文法

ip_to_domain(x)

參數說明

參數

說明

x

參數值為IPv4地址。

傳回值類型

varchar類型,返回intranet或internet。

  • intranet表示內網。

  • internet表示外網。

樣本

統計不是來自內網的請求總數。

  • 查詢和分析語句

    * |
    SELECT
      count(*) AS PV
    where
      ip_to_domain(client_ip) != 'intranet'
  • 查詢和分析結果:PV 值為 941786

ip_to_geo函數

ip_to_geo函數用於分析目標IPv4地址所在位置的經緯度。關於geohash函數的詳細資料,請參見地理函數

文法

ip_to_geo(x)

參數說明

參數

說明

x

參數值為IPv4地址。

傳回值類型

varchar類型,格式為緯度,經度

樣本

統計IPv4地址的經緯度,確認用戶端分布情況。

  • 查詢和分析語句

    * |
    SELECT
      count(*) AS PV,
      ip_to_geo(client_ip) AS geo
    GROUP BY
      geo
    ORDER BY
      PV DESC
  • 查詢和分析結果包含兩行樣本資料:PV為5122、geo為39.1423,117.173,PV為4960、geo為29.5569,106.553。ip_to_geo函數返回"緯度,經度"格式的座標字串。

ip_to_provider函數

ip_to_provider函數用於分析目標IPv4地址對應的網路電訊廠商。

文法

ip_to_provider(x)

參數說明

參數

說明

x

參數值為IPv4地址。

傳回值類型

varchar類型。

樣本

統計通過不同網路電訊廠商發起的請求的平均請求時間。

  • 查詢和分析語句

    * |
    SELECT
      avg(request_time) AS avg_request_time,
      ip_to_provider(client_ip) AS provider
    GROUP BY
      provider
    ORDER BY
      avg_request_time
  • 查詢和分析結果返回三行資料:avg_request_time 分別為 18.0、25.0、26.0,對應的 provider 分別為信實通訊、CAT、網宿。

ip_to_province函數

ip_to_province函數分析目標IPv4地址所屬

文法

  • 返回的中文名稱。

    ip_to_province(x)
  • 返回的英文名稱。

    ip_to_province(x,'en')

參數說明

參數

說明

x

參數值為IPv4地址。

傳回值類型

varchar類型。

樣本

統計請求總數Top10的

  • 查詢和分析語句

    * |
    SELECT
      count(*) as PV,
      ip_to_province(client_ip) AS province
    GROUP BY
      province
    ORDER BY
      PV desc
    LIMIT
      10

    如果上述結果中包含了內網請求,且您希望過濾這部分請求,可參考如下查詢和分析語句。

    * |
    SELECT
      count(*) AS PV,
      ip_to_province(client_ip) AS province
    WHERE
      ip_to_domain(client_ip) != 'intranet'
    GROUP BY
      province
    ORDER BY
      PV DESC
    LIMIT
      10
  • 查詢和分析結果:執行第一條查詢語句後,返回結果為包含 PVprovince 兩列的表格,按PV降序排列,樣本結果中廣東省以368次PV排名第一,部分IP無法解析省份時 province 列為空白值。

ip_prefix函數

ip_prefix函數用於擷取目標IPv4地址的首碼。返回子網路遮罩格式的IPv4地址,例如192.168.1.0/24。

文法

ip_prefix(x, prefix_bits)

參數說明

參數

說明

x

參數值為IPv4地址。

prefix_bits

首碼位元。

傳回值類型

varchar類型。

樣本

擷取client_ip欄位值的IP地址首碼。

  • 查詢和分析語句

    * | SELECT ip_prefix(client_ip,24) AS client_ip
  • 查詢和分析結果返回結果為 client_ip 列,包含多個 /24 網段首碼值(如 xx.xx.xx.0/24)。

is_prefix_subnet_of函數

is_prefix_subnet_of函數用於判斷目標網段是否為某網段的子網。

文法

is_prefix_subnet_of(x, y)

參數說明

參數

說明

x

參數值為IPv4網段。y網段是否屬於x網段內。

y

參數值為IPv4網段。

傳回值類型

boolean類型。

樣本

判斷client_ip欄位值所在網段是否屬於192.168.0.1/24網段內。

  • 查詢和分析語句

    * | SELECT is_prefix_subnet_of('192.168.0.1/24',concat(client_ip,'/24'))
  • 查詢和分析結果返回結果為 _col0 列兩行資料,值均為 false,表示對應日誌中的 client_ip 不屬於 192.168.0.1/24 子網。

is_subnet_of函數

is_subnet_of函數用於判斷目標IPv4地址是否在某網段內。

文法

is_subnet_of(x, y)

參數說明

參數

說明

x

參數值為IPv4網段。

y

參數值為IPv4地址。

傳回值類型

boolean類型。

樣本

判斷client_ip欄位值是否屬於192.168.0.1/24網段內。

  • 查詢和分析語句

    * | SELECT is_subnet_of('192.168.0.1/24',client_ip)

ip_subnet_min函數

ip_subnet_min函數用於擷取IPv4網段中的最小IP地址。

文法

ip_subnet_min(x)

參數說明

參數

說明

x

參數值為IPv4網段。

傳回值類型

varchar類型。

樣本

擷取client_ip欄位值所在網段的最小IP地址。

  • 查詢和分析語句

    * | SELECT ip_subnet_min(concat(client_ip,'/24'))
  • 查詢和分析結果返回一行資料,列名為 _col0,顯示 client_ip 所在 /24 子網的最小IP地址(部分內容已脫敏)。

ip_subnet_max函數

ip_subnet_max函數用於擷取IPv4網段中最大IP地址。

文法

ip_subnet_max(x)

參數說明

參數

說明

x

參數值為IPv4網段。

傳回值類型

varchar類型。

樣本

擷取client_ip欄位值所在網段的最大IP地址。

  • 查詢和分析語句

    * | SELECT ip_subnet_max(concat(client_ip,'/24'))
  • 查詢和分析結果返回一行資料,_col0 列顯示 ip_subnet_max 函數的計算結果,值為該 /24 子網的最大 IP 位址(部分內容已脫敏)。

ip_subnet_range函數

ip_subnet_range用於擷取IPv4網段範圍。

文法

ip_subnet_range(x)

參數說明

參數

說明

x

參數值為IPv4網段。

傳回值類型

JSON類型。

樣本

擷取client_ip欄位值所在網段的範圍。

  • 查詢和分析語句

    * | SELECT ip_subnet_range(concat(client_ip,'/24'))
  • 查詢和分析結果返回 _col0 列,值為JSON數組格式的IP子網範圍,例如 ["xxx.xxx.xxx.0","xxx.xxx.xxx.255"],表示該子網的起始地址和結束位址。

ipv6_to_city函數

ipv6_to_city函數用於分析目標IPv6地址所屬城市的名稱。

文法

ipv6_to_city(x)

參數說明

參數

說明

x

參數值為IPv6的地址。

傳回值類型

varchar類型

樣本

統計不同城市請求的數量。

  • 查詢和分析語句

    * |
    SELECT
      ipv6_to_city(ipv6Address) AS city,
      count(*) AS count
    GROUP BY
      city
  • 查詢和分析結果返回各城市名稱及對應記錄數,例如:安陽市(18)、保定市(42)、保山市(3)、濱州市(9)。

ipv6_to_city_code函數

ipv6_to_city_code函數用於分析目標IPv6地址所屬城市的行政區劃代碼。

文法

ipv6_to_city_code(x)

參數說明

參數

說明

x

參數值為IPv6的地址。

傳回值類型

varchar類型

樣本

擷取IPv6對應城市的行政區劃代碼。

  • 查詢和分析語句

    * |
    SELECT
      ipv6Address,
      ipv6_to_city_code(ipv6Address) AS cityCode
    WHERE
      cityCode <> ''
  • 查詢和分析結果:查詢結果顯示,IPv6 地址經 ipv6_to_city_code 函數轉換後,返回的 cityCode 值為 350100

ipv6_to_city_geo函數

ipv6_to_city_geo函數用於分析目標IPv6地址所屬城市的經緯度。

文法

ipv6_to_city_geo(x)

參數說明

參數

說明

x

參數值為IPv6的地址。

傳回值類型

varchar類型,格式為經度,緯度

樣本

統計IPv6地址的經緯度,確認用戶端分布情況。

  • 查詢和分析語句

    * |
    SELECT
      ipv6_to_city_geo(ipv6Address) AS geo,
      count(*) AS PV
    GROUP BY
      geo
    ORDER BY
      PV DESC
  • 查詢和分析結果:查詢結果返回 geoPV 兩列,樣本資料:133.397995,-24.9121 對應 PV 6270;10.45415,51.164181 對應 PV 3813;-2.23001,54.314072 對應 PV 2055;121.5654268,25.0329636 對應 PV 1893。

ipv6_to_country函數

ipv6_to_country函數用於分析目標IPv6地址所屬國家或地區。

文法

ipv6_to_country(x)

參數說明

參數

說明

x

參數值為IPv6的地址。

傳回值類型

varchar類型

樣本

統計請求總數Top10的國家或地區。

  • 查詢和分析語句

    * |
    SELECT
      count(*) AS PV,
      ipv6_to_country(ipv6Address) AS country
    WHERE
      country <> ''
    GROUP BY
      country
    ORDER BY
      PV DESC
    LIMIT
      10
  • 查詢和分析結果:查詢結果返回10條記錄,樣本資料:德國(3813)、台灣(2337)、英國(2055)、瑞典(1119)、荷蘭(1014)、美國(942)、俄羅斯(930)、馬來西亞(867)等。

ipv6_to_country_code函數

ipv6_to_country_code函數用於分析目標IPv6地址所屬國家或地區的代碼。

文法

ipv6_to_country_code(x)

參數說明

參數

說明

x

參數值為IPv6的地址。

傳回值類型

varchar類型

樣本

擷取IPv6地址所屬國家或地區的代碼。

  • 查詢和分析語句

    * |
    SELECT
      ipv6Address,
      ipv6_to_country_code(ipv6Address) AS code
    WHERE
      cityCode <> ''
  • 查詢和分析結果中,ipv6_to_country_code 函數將樣本 IPv6 位址解析為國家代碼 CN(中國)。

ipv6_to_domain函數

ipv6_to_domain函數用於判斷目標IP地址是內網地址還是外網地址。

文法

ipv6_to_domain(x)

參數說明

參數

說明

x

參數值為IPv6的地址。

傳回值類型

varchar類型,返回intranet或internet。

  • intranet表示內網。

  • internet表示外網。

樣本

統計內外網請求的總數。

  • 查詢和分析語句

    * |
    SELECT
      ipv6_to_domain(ipv6Address) AS domain,
      count(*) AS count
    GROUP BY
      domain
  • 查詢和分析結果以表格形式展示,包含 domaincount 兩列。其中 intranet 的請求數量為 9,internet 的請求數量為 38067。

ipv6_to_provider函數

ipv6_to_provider函數用於分析目標IP地址所對應的網路電訊廠商。

文法

ipv6_to_provider(x)

參數說明

參數

說明

x

參數值為IPv6的地址。

傳回值類型

varchar類型

樣本

統計請求總數Top10的網路電訊廠商。

  • 查詢和分析語句

    * |
    SELECT
      ipv6_to_provider(ipv6Address) AS provider,
      count(*) AS count
    GROUP BY
      provider
    ORDER BY
      count DESC
    LIMIT
      10
  • 查詢和分析結果:查詢結果返回按訪問次數降序排列的網路供應商列表,包括 edu.tw(2235)、colt.net(1512)、maxis.com.my(780)、citictel-cpc.com(453)、科技網(348)、ntt.com(261)、att.com(258)、libertyglobal.com(174)等,共10條記錄。

ipv6_to_province函數

ipv6_to_province函數用於分析目標IPv6地址所屬省份。

文法

ipv6_to_province(x)

參數說明

參數

說明

x

參數值為IPv6的地址。

傳回值類型

varchar類型

樣本

統計請求總數Top10的省份。

  • 查詢和分析語句

    * |
    SELECT
      count(*) AS PV,
      ipv6_to_province(ipv6Address) AS province
    WHERE
      province <> ''
    GROUP BY
      province
    ORDER BY
      PV DESC
    LIMIT
      10
  • 查詢和分析結果:查詢結果返回PVprovince兩列,按PV降序排列,樣本資料包括江蘇省(564)、廣東省(558)、吉隆坡聯邦直轄區(555)、山東省(507)、河南省(435)、四川省(354)、浙江省(336)、安徽省(312)等,總計10條記錄。

ipv6_to_province_code函數

ipv6_to_province_code函數用於分析目標IPv6地址所屬省份的行政區劃代碼。

文法

ipv6_to_province_code(x)

參數說明

參數

說明

x

參數值為IPv6的地址。

傳回值類型

varchar類型

樣本

擷取IPv6地址所屬省份的行政區劃代碼。

  • 查詢和分析語句

    * |
    SELECT
      ipv6Address,
      ipv6_to_province_code(ipv6Address) AS code
    WHERE
      cityCode <> ''
  • 查詢和分析結果:查詢結果返回 4 行資料,ipv6Address 列顯示若干 IPv6 地址(已脫敏),code 列的值均為 350000,表示對應的省份編碼。