本文將會為您介紹Hologres中IP位址解析相關函數以及函數的用法。
前提條件
在使用IP位址解析相關函數之前,您需要開通Hologres執行個體並串連開發工具,操作樣本請參見串連HoloWeb並執行查詢。
函數概述
Hologres中使用到的IP位址解析相關函數如下表所示。
|
函數 |
說明 |
|
擷取IP地址對應的國家、省份、城市資訊,且支援語言切換。 |
|
|
擷取IP地址對應的國家。 |
|
|
擷取IP地址對應的省份。 |
|
|
擷取IP地址對應的城市。 |
|
|
擷取IP地址對應的互連網服務提供者。 |
|
|
將IP地址轉換成一個數字。 |
|
|
將數字轉換成一個IP地址。 |
使用限制
在Hologres中使用IP位址解析相關函數需要注意如下事項:
-
Hologres中使用IP位址解析相關函數目前僅支援IPv4的地址。
-
IP位址解析函數是基於擴充實現的,若需使用該功能,請執行以下操作:
-
提交工單,由Hologres支援人員在後台幫您開啟函數配置。
-
請執行個體的管理員(Superuser)在執行個體中執行如下擴充命令。
create extension ipdb;說明該命令是DB層級的,一個DB只需要執行一次即可,切換到新DB後需要管理員(Superuser)再執行一次。
-
ip2region
-
函數說明
該函數主要用於擷取IP地址對應的國家、省份、城市和互連網服務提供者資訊,且支援語言切換。
-
函數文法
ip2region(ip, level, lang) -
參數說明
參數
說明
ip
text類型,表示待查詢的IP地址(當前只支援ipv4)。
level
text類型, 包含四個可選項:
-
IP地址所屬國家(Country)
-
IP地址所屬省份(Province)
-
IP地址所屬城市(City)
-
互連網服務提供者(isp)
lang
text類型,僅支援CN、EN。指定返回結果的語言類型為中文或者英文。
-
-
傳回值類型:text類型。
-
使用樣本
select ip2region('31.13.79.1', 'country', 'CN'); select ip2region('31.13.79.1', 'country', 'EN'); select ip2region('31.13.79.1', 'province', 'EN'); select ip2region('31.13.79.1', 'city', 'EN'); select ip2region('31.13.79.1', 'isp', 'EN');
ip_country/ip_province/ip_city/ip_isp
-
函數說明
ip_country/ip_province/ip_city/ip_isp是ip2region函數的一種簡潔用法,主要用於擷取IP地址對應的國家、省份、城市和互連網服務提供者資訊。
-
函數文法
ip_country/ip_province/ip_city/ip_isp (ip, [lang])其中,ip_country為擷取IP地址對應的國家,ip_province為擷取IP地址對應的省份,ip_cityip_isp為擷取IP地址對應的互連網服務提供者。
-
參數說明
參數
說明
ip
text類型,表示待查詢的IP地址(當前只支援ipv4)。未指定語言類型時,預設是英文
lang
text類型,僅支援CN、EN。指定返回結果的語言類型為中文或者英文。
-
傳回值類型:text類型。
-
使用樣本
select ip_country('31.13.79.1');//預設返回英文 select ip_country('31.13.79.1','EN'); select ip_province('31.13.79.1'); select ip_province('31.13.79.1','EN'); select ip_city('31.13.79.1'); select ip_city('31.13.79.1','EN'); select ip_isp('115.239.210.27'); select ip_isp('115.239.210.27','EN');
ip2long
-
函數說明
該函數主要用於將IPv4地址轉換成數字格式。
-
函數文法
ip2long(ip) -
參數說明
參數
說明
ip
text類型,表示待查詢的IP地址(當前只支援ipv4)。
-
傳回值類型:bigint類型。
-
使用樣本
select ip2long('31.13.79.1');
long2ip
-
函數說明
該函數主要用於將數字格式轉換成IPv4地址。
-
函數文法
long2ip(longVal) -
參數說明
參數
說明
longVal
text類型,表示待轉換的數字。
-
傳回值類型:text類型。
-
使用樣本
select long2ip(ip2long('31.13.79.1'));