すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:IP 関数

最終更新日:May 30, 2025

このトピックでは、IP 関数の構文について説明します。 また、関数の使用方法の例も示します。

次の表に、Simple Log Service でサポートされている IP 関数を示します。

重要

分析文で文字列を使用する場合は、文字列を単一引用符 ('') で囲む必要があります。 囲まれていない文字列、または二重引用符 ("") で囲まれた文字列は、フィールド名または列名を示します。 たとえば、'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 アドレスが属する都市の経度と緯度を識別します。 この関数は、都市の経度と緯度を返します。 各都市には、1 セットの座標しかありません。

×

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 アドレスのインターネットサービスプロバイダー (ISP) を識別します。

×

ip_to_province 関数

ip_to_province(x)

IPv4 アドレスが属するを識別します。

この関数は、の中国語名を返します。

×

ip_to_province(x, 'en')

IPv4 アドレスが属するを識別します。

この関数は、の行政区画コードを返します。

×

IPv4 CIDR ブロック関数

ip_prefix 関数

ip_prefix(x, prefix_bits)

IPv4 アドレスのプレフィックスを返します。

×

is_prefix_subnet_of 関数

is_prefix_subnet_of(x, y)

IPv4 CIDR ブロックが、指定された CIDR ブロックのサブネットであるかどうかを確認します。

×

is_subnet_of 関数

is_subnet_of(x, y)

IPv4 アドレスが、指定された CIDR ブロック内にあるかどうかを確認します。

×

ip_subnet_max 関数

ip_subnet_max(x)

IPv4 CIDR ブロック内の最大 IP アドレスを返します。

×

ip_subnet_min 関数

ip_subnet_min(x)

IPv4 CIDR ブロック内の最小 IP アドレスを返します。

×

ip_subnet_range 関数

ip_subnet_range(x)

IPv4 CIDR ブロックの範囲を返します。

×

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 アドレスの ISP を識別します。

×

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, // 最大リクエスト時間に対応するリクエストIDを取得
      ip_to_city(client_ip) AS city // クライアントIPから都市を取得
    GROUP BY
      city // 都市ごとにグループ化
    
  • クエリと分析結果 ip_to_city

ip_to_city_geo 関数

ip_to_city_geo 関数は、IPv4 アドレスが属する都市の経度と緯度を特定します。この関数は都市の経度と緯度を返します。各都市には1つの座標セットしかありません。

手順

ip_to_city_geo(x)

ip_to_city 関数

パラメーター

説明

x

このパラメーターの値は IPv4 アドレスです。

戻り値の型

varchar 型。形式: latitude,longitude です。

IPv4 アドレスの経度と緯度、およびクライアントの分布を取得します。

  • クエリ ステートメント

    * |
    SELECT
      count(*) AS PV,  // PV としてカウント
      ip_to_city_geo(client_ip) AS geo // クライアント IP から地理情報を取得し、geo として設定
    GROUP BY
      geo // geo でグループ化
    ORDER BY
      PV DESC // PV の降順でソート
  • クエリと分析結果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, // 最大リクエスト時間に対応するリクエストIDを取得
      ip_to_country(client_ip) AS country // クライアントIPから国を取得
    GROUP BY
      country // 国別にグループ化
  • クエリと分析結果 延时情况

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, // 最大リクエスト時間に対応するリクエストIDを取得する
      ip_to_country_code(client_ip) AS country // クライアントIPから国コードを取得する
    GROUP BY
      country // 国コードでグループ化する
  • クエリと分析結果ip_to_country_code

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'
  • クエリと分析結果不来自内网的请求

ip_to_geo 関数

ip_to_geo 関数は、IPv4 アドレスの場所の経度と緯度を識別します。 geohash 関数の詳細については、「地理関数」をご参照ください。

構文

ip_to_geo(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv4 アドレスです。

戻り値の型

varchar 型。 フォーマット:latitude,longitude

IPv4 アドレスの経度と緯度、およびクライアントの分布を取得します。

  • クエリ文

    * |
    SELECT
      count(*) AS PV,  // PV としてカウント
      ip_to_geo(client_ip) AS geo // client_ip から地理位置情報を取得
    GROUP BY
      geo
    ORDER BY
      PV DESC // PV の降順でソート
  • クエリと分析結果客户端分布

ip_to_provider 関数

ip_to_provider 関数は、IPv4 アドレスの ISP を識別します。

構文

ip_to_provider(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv4 アドレスです。

戻り値の型

varchar 型。

ISP 別のリクエストの平均処理時間を計算します。

  • クエリ文

    * |
    SELECT
      avg(request_time) AS avg_request_time,
      ip_to_provider(client_ip) AS provider
    GROUP BY
      provider
    ORDER BY
      avg_request_time
  • クエリと分析結果运营商延时

ip_to_province 関数

ip_to_province は、IP アドレスが属するを識別します。

構文

  • 次の構文を使用すると、関数はの中国語名を返します。

    ip_to_province(x)
  • 次の構文を使用すると、関数はの英語名を返します。

    ip_to_province(x,'en')

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv4 アドレスです。

戻り値の型

varchar 型。

リクエストの総数に基づいて上位 10 件のを取得します。

  • クエリ文

    * |
    SELECT
      count(*) as PV,  // PV としてカウント
      ip_to_province(client_ip) AS province // client_ip から省份を取得
    GROUP BY
      province // 省份でグループ化
    ORDER BY
      PV desc // PV で降順にソート
    LIMIT
      10 // 上位10件に制限
    

    上位 10 件の州を取得する際に、内部ネットワークから送信されたリクエストを除外する場合は、次のクエリ文を使用します。

    * |
    SELECT
      count(*) AS PV, // PV としてカウント
      ip_to_province(client_ip) AS province // client_ip から省份を取得
    WHERE
      ip_to_domain(client_ip) != 'intranet' //イントラネットからのリクエストを除外
    GROUP BY
      province // 省份でグループ化
    ORDER BY
      PV DESC // PV で降順にソート
    LIMIT
      10 // 上位10件に制限
    
  • クエリと分析結果top10省份

WordPress を構成する

ip_prefix 関数は、IPv4 アドレスのプレフィックスを返します。この関数は、サブネットマスク形式の IPv4 アドレスを返します。例:192.168.1.0/24。

構文

ip_prefix(x, prefix_bits)

ip_to_city_geo 関数

パラメーター

説明

x

このパラメーターの値は IPv4 アドレスです。

prefix_bits

このパラメーターは、プレフィックスの長さを指定します。

戻り値の型

varchar 型。

client_ip フィールドの値にある IPv4 アドレスのプレフィックスを取得します。

  • 問題が発生した場合は、「トラブルシューティング ガイド」をご確認ください。

    * | SELECT ip_prefix(client_ip,24) AS client_ip  // クライアント IP の最初の 24 ビットを取得
  • クエリと分析結果ip_prefix

is_prefix_subnet_of 関数

is_prefix_subnet_of 関数は、IPv4 CIDR ブロックが指定された CIDR ブロックのサブネットであるかどうかを確認します。

構文

is_prefix_subnet_of(x, y)

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv4 CIDR ブロックです。この関数は、y CIDR ブロックが x CIDR ブロックのサブネットであるかどうかを確認します。

y

このパラメーターの値は IPv4 CIDR ブロックです。

戻り値の型

ブール型。

client_ip フィールドの値にある IPv4 CIDR ブロックが 192.168.0.1/24 のサブネットであるかどうかを確認します。

  • クエリ文

    * | SELECT is_prefix_subnet_of('192.168.0.1/24',concat(client_ip,'/24'))
  • クエリと分析結果is_subnet_of

is_subnet_of 関数

is_subnet_of 関数は、IPv4 アドレスが指定された CIDR ブロック内にあるかどうかを確認します。

構文

is_subnet_of(x, y)

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv4 CIDR ブロックです。

y

このパラメーターの値は IPv4 アドレスです。

戻り値の型

ブール型。

client_ip フィールドの値にある IPv4 アドレスが 192.168.0.1/24 内にあるかどうかを確認します。

  • クエリ文

    * | SELECT is_subnet_of('192.168.0.1/24',client_ip)
  • クエリと分析結果is_subnet_of

ip_subnet_min 関数

ip_subnet_min 関数は、IPv4 CIDR ブロック内の最小 IP アドレスを返します。

構文

ip_subnet_min(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は、IPv4 CIDR ブロックです。

戻り値の型

varchar 型。

client_ip フィールドの値にある IP アドレスが属する IPv4 CIDR ブロックの最小 IP アドレスを取得します。

  • クエリ文

    * | SELECT ip_subnet_min(concat(client_ip,'/24'))
  • クエリと分析結果ip_subnet_min

ip_subnet_max 関数

ip_subnet_max 関数は、IPv4 CIDR ブロック内の最大 IP アドレスを返します。

構文

ip_subnet_max(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は、IPv4 CIDR ブロックです。

戻り値の型

varchar 型。

client_ip フィールドの値にある IP アドレスが属する IPv4 CIDR ブロックの最大 IP アドレスを取得します。

  • クエリ文

    * | SELECT ip_subnet_max(concat(client_ip,'/24'))
  • クエリと分析結果ip_subnet_max

ip_subnet_range 関数

ip_subnet_range 関数は、IPv4 CIDR ブロックの範囲を返します。

構文

ip_subnet_range(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は、IPv4 CIDR ブロックです。

戻り値の型

JSON 型。

client_ip フィールドの値にある IP アドレスが属する IPv4 CIDR ブロックの範囲を取得します。

  • クエリ文

    * | SELECT ip_subnet_range(concat(client_ip,'/24'))
  • クエリと分析結果ip_subnet_range

手順

ipv6_to_city 関数は、IPv6 アドレスが属する都市を特定します。

構文

ipv6_to_city(x)

ip_to_country 関数

パラメーター

説明

x

このパラメーターの値は IPv6 アドレスです。

戻り値の型

varchar型

異なる都市から送信されたリクエスト数を取得してください。

  • クエリステートメント

    * |
    SELECT
      ipv6_to_city(ipv6Address) AS city,  // city として ipv6Address から都市を取得
      count(*) AS count // 件数をカウント
    GROUP BY
      city // city でグループ化
  • クエリと分析結果ipv6_to_city

ipv6_to_city_code 関数

ipv6_to_city_code 関数は、IPv6 アドレスが属する都市の行政区画コードを識別します。

構文

ipv6_to_city_code(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv6 アドレスです。

戻り値の型

varchar 型。

IPv6 アドレスが属する都市の行政区画コードを取得します。

  • クエリ文

    * |
    SELECT
      ipv6Address,  // IPv6アドレス
      ipv6_to_city_code(ipv6Address) AS cityCode // 都市コード
    WHERE
      cityCode <> '' // 空ではない
  • クエリと分析結果ipv6_to_city_code

ipv6_to_city_geo 関数

ipv6_to_city_geo 関数は、IPv6 アドレスが属する都市の経度と緯度を識別します。

構文

ipv6_to_city_geo(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv6 アドレスです。

戻り値の型

varchar 型。形式: longitude,latitude

IPv6 アドレスの経度と緯度、およびクライアントの分布を取得します。

  • クエリ文

    * | // 全てのデータ
    SELECT
      ipv6_to_city_geo(ipv6Address) AS geo, // IPv6 アドレスから地理位置情報を取得し、geo 列に格納
      count(*) AS PV // 各地理位置情報ごとの数をカウントし、PV 列に格納
    GROUP BY
      geo // geo 列でグループ化
    ORDER BY
      PV DESC // PV 列の降順でソート
  • クエリと分析結果ipv6_to_city_geo

ipv6_to_country 関数

ipv6_to_country 関数は、IPv6 アドレスが属する国または地域を識別します。

構文

ipv6_to_country(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv6 アドレスです。

戻り値の型

varchar 型。

リクエストの総数に基づいて上位 10 か国または地域を取得します。

  • クエリ文

    * |
    SELECT
      count(*) AS PV,
      ipv6_to_country(ipv6Address) AS country
    WHERE
      country <> ''
    GROUP BY
      country
    ORDER BY
      PV DESC
    LIMIT
      10
  • クエリと分析結果ipv6_to_country

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_to_domain 関数

ipv6_to_domain 関数は、IPv6 アドレスがプライベートアドレスかパブリックアドレスかを確認します。

構文

ipv6_to_domain(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv6 アドレスです。

戻り値の型

varchar 型。関数は intranet または internet のみ返すことができます。

  • intranet:プライベートアドレス。

  • internet:パブリックアドレス。

内部ネットワークとインターネットを介して送信されるリクエストの総数を取得します。

  • クエリ文

    * |
    SELECT
      ipv6_to_domain(ipv6Address) AS domain,
      count(*) AS count
    GROUP BY
      domain
  • クエリと分析結果ipv6_to_domain

ipv6_to_provider 関数

ipv6_to_provider 関数は、IPv6 アドレスの ISP を識別します。

構文

ipv6_to_provider(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv6 アドレスです。

戻り値の型

varchar 型。

リクエストの総数に基づいて上位 10 件の ISP を取得します。

  • クエリ文

    * |
    SELECT
      ipv6_to_provider(ipv6Address) AS provider, // provider として ipv6_to_provider(ipv6Address) を選択
      count(*) AS count // count としてカウント
    GROUP BY
      provider // provider でグループ化
    ORDER BY
      count DESC // count の降順でソート
    LIMIT
      10 // 上位 10 件に制限
    
  • クエリと分析結果ipv6_to_provider

ipv6_to_province 関数

ipv6_to_province 関数は、IPv6 アドレスが属する省を識別します。

構文

ipv6_to_province(x)

パラメーター

パラメーター

説明

x

このパラメーターの値は IPv6 アドレスです。

戻り値の型

varchar 型。

リクエストの総数に基づいて上位 10 件の省を取得します。

  • クエリ文

    * |
    SELECT
      count(*) AS PV,  // PV としてカウント
      ipv6_to_province(ipv6Address) AS province // 省として ipv6_to_province(ipv6Address)
    WHERE
      province <> '' // 省が空文字列でない
    GROUP BY
      province // 省別にグループ化
    ORDER BY
      PV DESC // PV の降順でソート
    LIMIT
      10 // 上位10件に制限
    
  • クエリと分析結果ipv6_to_province

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 <> '' // 空ではない cityCode をフィルタリング
  • クエリと分析結果ipv6_to_province_code