IP 認識機能は、IP がイントラネット IP であるかインターネット IP であるかを認識し、IP が属する国、地域、都市を決定することができます。

関数名 説明
ip_to_domain(ip) IP が存在するドメインと、その IP がイントラネット IP かインターネット IP かを決定します。 戻り値は、イントラネットまたはインターネットです。 SELECT ip_to_domain(ip)
ip_to_country(ip) IP が存在する国を決定します。 SELECT ip_to_country(ip)
ip_to_province(ip) IP が存在する省を決定します。IP が海外に存在する場合、国名が返されます。 SELECT ip_to_province(ip)
ip_to_city(ip) IP が存在する都市を決定します。IP が海外に存在する場合、国名が返されます。 SELECT ip_to_city(ip)
ip_to_geo(ip) IP が存在する都市の経度と緯度を決定します。範囲の結果は緯度と経度の形式になります。 SELECT ip_to_geo(ip)
ip_to_city_geo(ip) IP が存在する都市の経度と緯度を決定します。 都市の緯度と経度を返します。各都市は1つの緯度と経度しか持ちません。 範囲の結果は緯度と経度の形式になります。 SELECT ip_to_city_geo(ip)
ip_to_provider(ip) IP のネットワークオペレータを取得します。 SELECT ip_to_provider(ip)
ip_to_country(ip,'en') IP が存在する国を特定し、国際コードを返します。 SELECT ip_to_country(ip,'en')
ip_to_country_code(ip) IP が存在する国を特定し、国際コードを返します。 SELECT ip_to_country_code(ip)
ip_to_province(ip,'en') IP が存在する地域を決定し、英語の州名または中国語のアルファベットを返します。 SELECT ip_to_province(ip,'en')
ip_to_city(ip,'en') IP が存在する都市を決定し、英語の都市名または中国語アルファベットを返します。 SELECT ip_to_city(ip,'en')

  • クエリ内のイントラネットアクセスリクエストを除外し、リクエストの総数を表示する
    * | selectcount(1)whereip_to_domain(ip)! ='intranet'
  • トップ 10 のアクセス地域を表示
    * | SELECT count(1) as pv, ip_to_province(ip) as province GROUP BY province order by pv desc limit 10
    応答結果の例:
    [
        {
            "__source__": "",
            "__time__": "1512353137",
            "province": "Zhejiang province",
            "pv": "4045"
        }, {
            "__source__": "",
            "__time__": "1512353137",
            "province": "Shanghai city",
            "pv": "3727"
        }, {
            "__source__": "",
            "__time__": "1512353137",
            "province": "Beijing city",
            "pv": "954"
        }, {
            "__source__": "",
            "__time__": "1512353137",
            "province": "intranet IP",
            "pv": "698"
        }, {
            "__source__": "",
            "__time__": "1512353137",
            "province": "Guangdong Province ",
            "pv": "472"
        }, {
            "__source__": "",
            "__time__": "1512353137",
            "province": Fujian Province ",
            "pv": "71"
        }, {
            "__source__": "",
            "__time__": "1512353137",
            "province": "United ArabEmirates (UAE)",
            "pv": "52"
        }, {
            "__source__": "",
            "__time__": "1512353137",
            "province": "United States ",
            "pv": "43"
        }, {
            "__source__": "",
            "__time__": "1512353137",
            "province": "Germany ",
            "pv": "26"
        }, {
            "__source__": "",
            "__time__": "1512353137",
            "province": "Kuala Lumpur ",
            "pv": "26"
        }
    ]
    前述の結果には、イントラネット IP が含まれます。 開発者がイントラネットからテストを行うことがあります。 これらのアクセスリクエストを除外するには、次の分析構文を使用します。
  • イントラネットリクエストをフィルタリングし、トップ 10 のネットワークアクセスの省を表示する
    * | SELECT count(1) as pv, ip_to_province(ip) as province WHERE ip_to_domain(ip) ! = 'intranet' GROUP BY province ORDER BY pv desc limit 10
  • 各国の平均応答レイテンシ、最大応答レイテンシ、最大レイテンシリクエストを確認する
    * | SELECT AVG(latency),MAX(latency),MAX_BY(requestId, latency), ip_to_country(ip) as country group by country limit 100
  • 異なるネットワーク事業者の平均待ち時間を確認する
    * | SELECT AVG(latency), ip_to_provider(ip) as provider group by provider limit 100
  • IP の緯度と経度を表示し、地図を作成する
    * | select count(1) as pv , ip_to_geo(ip) as geo group by geo order by pv desc

    応答結果の例:

    pv geo
    100 35.3284,-80.7459