Bu konu, IP işlevlerinin temel sözdizimini ve örneklerini açıklar.
Simple Log Service aşağıdaki IP işlevlerini destekler.
Log Service analitik ifadelerinde dizeleri tek tırnak işaretleri ('') içine alın. Log Service, tırnaksız değerleri veya çift tırnak işaretleri ("") içine alınanları bir alan adı veya sütun adı olarak yorumlar. Örneğin, 'status' bir dizedir; status veya "status" ise status adlı günlük alanını ifade eder.
|
Kategori |
İşlev |
Sözdizimi |
Açıklama |
SQL |
SPL |
|
IPv4 adres işlevleri |
|
Belirtilen IPv4 adresi için şehrin Çince adını döndürür. |
√ |
× |
|
|
|
Belirtilen IPv4 adresi için şehrin idari bölüm kodunu döndürür. |
√ |
× |
||
|
|
Belirtilen IPv4 adresi için şehrin enlem ve boylamını döndürür. Her şehir tek bir enlem-boylam çiftine karşılık gelir. |
√ |
× |
||
|
|
Belirtilen IPv4 adresi için ülke veya bölgenin Çince adını döndürür. |
√ |
× |
||
|
|
Belirtilen IPv4 adresi için ülke veya bölge kodunu döndürür. |
√ |
× |
||
|
|
Belirtilen IPv4 adresi için ülke veya bölge kodunu döndürür. Dönen sonuç ülke veya bölge kodudur. |
√ |
× |
||
|
|
Belirtilen IPv4 adresinin özel mi yoksa genel mi olduğunu belirler. |
√ |
× |
||
|
|
Belirtilen IPv4 adresi için enlem ve boylamı döndürür. |
√ |
× |
||
|
|
Belirtilen IPv4 adresi için İnternet hizmet sağlayıcısını (ISP) döndürür. |
√ |
× |
||
|
|
Belirtilen IPv4 adresi için state Çince adını döndürür. Dönen sonuç state Çince adıdır. |
√ |
× |
||
|
|
Belirtilen IPv4 adresi için state idari bölüm kodunu döndürür. Sonuç, state idari bölüm kodudur. |
√ |
× |
||
|
IPv4 CIDR blok işlevleri |
|
Belirtilen IPv4 adresi ve ön ek uzunluğu için ağ ön ekini döndürür. |
√ |
× |
|
|
|
Bir IPv4 CIDR bloğunun başka birinin alt ağı olup olmadığını belirler. |
√ |
× |
||
|
|
Bir IPv4 adresinin belirtilen bir IPv4 CIDR bloğunda olup olmadığını kontrol eder. |
√ |
× |
||
|
|
Belirtilen IPv4 CIDR bloğundaki en büyük IP adresini döndürür. |
√ |
× |
||
|
|
Belirtilen IPv4 CIDR bloğundaki en küçük IP adresini döndürür. |
√ |
× |
||
|
|
Belirtilen IPv4 CIDR bloğunun IP adres aralığını döndürür. |
√ |
× |
||
|
IPv6 adres işlevleri |
|
Belirtilen IPv6 adresi için şehrin Çince adını döndürür. |
√ |
× |
|
|
|
Belirtilen IPv6 adresi için şehrin idari bölüm kodunu döndürür. |
√ |
× |
||
|
|
Belirtilen IPv6 adresi için şehrin enlem ve boylamını döndürür. |
√ |
× |
||
|
|
Belirtilen IPv6 adresi için ülke veya bölgenin Çince adını döndürür. |
√ |
× |
||
|
|
Belirtilen IPv6 adresi için ülke veya bölge kodunu döndürür. |
√ |
× |
||
|
|
Belirtilen IPv6 adresinin özel mi yoksa genel mi olduğunu belirler. |
√ |
× |
||
|
|
Belirtilen IPv6 adresi için İnternet hizmet sağlayıcısını (ISP) döndürür. |
√ |
× |
||
|
|
Belirtilen IPv6 adresi için eyaletin Çince adını döndürür. |
√ |
× |
||
|
|
Belirtilen IPv6 adresi için eyaletin idari bölüm kodunu döndürür. |
√ |
× |
ip_to_city işlevi
ip_to_city işlevi, belirtilen bir IPv4 adresi için şehri döndürür.
Sözdizimi
-
Bir şehrin Çince adını döndürür.
ip_to_city(x) -
Bir şehrin idari bölüm kodunu döndürür.
ip_to_city(x,'en')
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
Bu örnekte, her şehir için ortalama istek süresi, maksimum istek süresi ve maksimum süreye karşılık gelen istek kimliği hesaplanır.
-
Sorgu ve analiz ifadesi
* | 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 Sorgu üç kayıt döndürür: Tianjin (avg_request_time: 44,85, max_request_time: 80,0, requestId: i-02); Lijiang (avg_request_time: 46,47, max_request_time: 80,0, requestId: i-01); ve Hegang (avg_request_time: 43,87, max_request_time: 80,0, requestId: i-01).
ip_to_city_geo işlevi
ip_to_city_geo işlevi, belirtilen bir IPv4 adresi için şehrin enlem ve boylamını döndürür.
Sözdizimi
ip_to_city_geo(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
enlem,boylam biçiminde bir varchar dizesi.
Örnekler
İstemci dağılımını haritalamak için IPv4 adreslerinin enlem ve boylamını alın.
-
Sorgu ifadesi
* | SELECT count(*) AS PV, ip_to_city_geo(client_ip) AS geo GROUP BY geo ORDER BY PV DESC Sorgu iki satır döndürür. İlk satırda
PVdeğeri 9113 vegeodeğeri 39,9288,116,389 (Pekin) olur. İkinci satırdaPVdeğeri 5784 vegeodeğeri 31,2222,121,458060 (Şanghay) olur.
ip_to_country işlevi
ip_to_country işlevi, belirtilen bir IPv4 adresi için ülkeyi veya bölgeyi döndürür.
Sözdizimi
-
Ülke veya bölge adını Çince olarak döndürür.
ip_to_country(x) -
Ülke veya bölge kodunu döndürür.
ip_to_country(x,'en')
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
Bu örnekte, her ülke veya bölge için ortalama istek süresi, maksimum istek süresi ve maksimum süreye karşılık gelen istek kimliği hesaplanır.
-
Sorgu ifadesi
* | 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 Sorgu ve analiz sonuçları üç kayıt gösterir: Hong Kong (Çin) (
avg_request_time: 45,27,max_request_time: 80,0,requestId: i-02); Avustralya (avg_request_time: 47,08,max_request_time: 80,0,requestId: i-01); ve Hindistan (avg_request_time: 39,39,max_request_time: 77,0,requestId: i-01).
Veri Dönüşümünde Kullanım (yeni düzenleyici)
Veri Dönüşümü (yeni düzenleyici) SPL sözdizimini kullanır ve IP işlevlerini extend ifadesi aracılığıyla çağırır. e_set ile v() birleştiren eski DSL sözdizimi artık desteklenmemektedir.
Aşağıdaki örnek, bir IP alanının ülke ve şehrini ayrıştırır:
* | extend country = ip_to_country(ip), city = ip_to_city(ip)
Örnek ayrıştırma sonucu: 203.0.113.1 → country: Amerika Birleşik Devletleri, city: Richardson.
ip_to_country_code işlevi
ip_to_country_code işlevi, verilen bir IPv4 adresi için ülke veya bölge kodunu döndürür.
Sözdizimi
ip_to_country_code(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
Aşağıdaki sorgu, her ülke veya bölge için ortalama istek süresini, maksimum istek süresini ve maksimum istek süresiyle ilişkili istek kimliğini hesaplar.
-
Sorgu
* | 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 Sorgu iki satır sonuç döndürür. İlk satırda avg_request_time
45,012, max_request_time80,0, requestIdi-01ve countryMOdeğerlerine sahiptir. İkinci satırda avg_request_time46,286, max_request_time77,0, requestIdi-02ve countryGBdeğerlerine sahiptir.
ip_to_domain işlevi
ip_to_domain işlevi, bir IPv4 adresinin özel adres mi yoksa genel adres mi olduğunu belirler.
Sözdizimi
ip_to_domain(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
Aşağıdaki değerlerden birine sahip bir varchar dizesi döndürür:
'intranet': özel bir adresi belirtir.
'internet': genel bir adresi belirtir.
Örnekler
Özel bir ağdan kaynaklanmayan isteklerin sayısını hesaplayın.
-
Sorgu ifadesi
* | SELECT count(*) AS PV where ip_to_domain(client_ip) != 'intranet' Sorgu ve analiz sonuçları: PV sayısı
941786olur.
ip_to_geo işlevi
ip_to_geo işlevi, belirtilen bir IPv4 adresi için enlem ve boylamı döndürür. Geo işlevleri hakkında daha fazla bilgi için bkz. Geo işlevleri.
Sözdizimi
ip_to_geo(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
enlem,boylam biçiminde bir varchar dizesi.
Örnekler
Bu örnekte, istemci dağılımını belirlemek için IPv4 adreslerinin enlem ve boylamı alınır.
-
Sorgu ifadesi
* | SELECT count(*) AS PV, ip_to_geo(client_ip) AS geo GROUP BY geo ORDER BY PV DESC Sorgu ve analiz sonuçları iki örnek kayıt içerir: biri PV değeri 5122 ve geo değeri 39,1423,117.173 olan; diğeri PV değeri 4960 ve geo değeri 29,5569,106.553 olan.
ip_to_provider işlevi
ip_to_provider işlevi, bir IPv4 adresinin İSS'sini döndürür.
Sözdizimi
ip_to_provider(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
Bir varchar dizesi.
Örnekler
İSS'ye göre ortalama istek süresini hesaplayın.
-
Sorgu ifadesi
* | SELECT avg(request_time) AS avg_request_time, ip_to_provider(client_ip) AS provider GROUP BY provider ORDER BY avg_request_time Sorgu üç satır döndürür. avg_request_time değerleri sırasıyla 18,0, 25,0 ve 26,0 olup karşılık gelen provider değerleri Reliance Communications, CAT ve Wangsu'dur.
ip_to_province işlevi
ip_to_province işlevi, verilen bir IPv4 adresi için state döndürür.
Sözdizimi
-
state Çince adını döndürür.
ip_to_province(x) -
state İngilizce adını döndürür.
ip_to_province(x,'en')
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
VARCHAR
Örnekler
Toplam isteğe göre ilk 10 states hesaplayın.
-
Sorgu ifadesi
* | SELECT count(*) as PV, ip_to_province(client_ip) AS province GROUP BY province ORDER BY PV desc LIMIT 10Sonuçlardan intranet isteklerini filtrelemek için aşağıdaki sorgu ifadesini kullanın.
* | 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 Sorgu sonuçları: İlk sorgu ifadesini çalıştırmak, PV ve province sütunlarına sahip bir tablo döndürür. Sonuçlar PV'ye göre azalan sırada sıralanır. Örnek sonuçlarda Guangdong eyaleti 368 PV ile ilk sırada yer alır. Bir IP adresi bir eyalete çözümlenemezse province sütunundaki değer boş olur.
ip_prefix işlevi
ip_prefix işlevi, verilen bir IPv4 adresi için CIDR gösterimindeki alt ağ ön ekini (örneğin 192.168.1.0/24) döndürür.
Sözdizimi
ip_prefix(x, prefix_bits)
Parametreler
|
|
|
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
client_ip alanındaki IP adresleri için alt ağ ön ekini alın.
-
Sorgu ifadesi
* | SELECT ip_prefix(client_ip,24) AS client_ip Sorgu,
xx.xx.xx.0/24gibi /24 alt ağ ön eklerini içeren birclient_ipsütunu döndürür.
is_prefix_subnet_of
is_prefix_subnet_of, bir IPv4 CIDR bloğunun başka birinin alt ağı olup olmadığını kontrol eder.
Sözdizimi
is_prefix_subnet_of(x, y)
Parametreler
|
|
|
|
|
|
|
|
|
Dönüş değeri türü
Boolean bir değer döndürür: y, x'in alt ağı ise true; aksi halde false döner.
Örnekler
Bu örnek, client_ip alanından türetilen CIDR bloğunun 192.168.0.1/24'ün alt ağı olup olmadığını kontrol eder.
-
Sorgu ifadesi
* | SELECT is_prefix_subnet_of('192.168.0.1/24',concat(client_ip,'/24')) Sorgu ve analiz sonuçları, her ikisi de
falsedeğerine sahip iki satır içeren bir_col0sütunu içerir. False değeri, ilgili günlükteki client_ip'nin 192.168.0.1/24 alt ağında olmadığını gösterir.
is_subnet_of işlevi
is_subnet_of işlevi, bir IPv4 adresinin bir CIDR bloğunda olup olmadığını belirler.
Sözdizimi
is_subnet_of(x, y)
Parametreler
|
|
|
|
|
|
|
|
|
Dönüş değeri türü
Boolean
Örnekler
client_ip alanının değerinin 192.168.0.1/24 CIDR bloğunda olup olmadığını kontrol edin.
-
Sorgu ifadesi
* | SELECT is_subnet_of('192.168.0.1/24',client_ip)
ip_subnet_min işlevi
ip_subnet_min işlevi, bir IPv4 CIDR bloğundaki en küçük IP adresini döndürür.
Sözdizimi
ip_subnet_min(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
Bu örnek, client_ip alanındaki IP adresini içeren CIDR bloğundaki en küçük IP adresini döndürür.
-
Sorgu ifadesi
* | SELECT ip_subnet_min(concat(client_ip,'/24')) Sorgu,
_col0adlı bir sütuna sahip tek bir satır döndürür. Bu sütun,client_ipiçeren /24 CIDR bloğundaki en küçük IP adresini gösterir. Bazı içerikler maskelenmiştir.
ip_subnet_max işlevi
ip_subnet_max işlevi, bir IPv4 CIDR bloğundaki en büyük IP adresini döndürür.
Sözdizimi
ip_subnet_max(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
client_ip alanındaki IP adresi için /24 alt ağının en büyük IP adresini hesaplar.
-
Sorgu ve analiz ifadesi
* | SELECT ip_subnet_max(concat(client_ip,'/24')) _col0sütunu,ip_subnet_maxişlevinin sonucunu gösterir: /24 alt ağının en büyük IP adresi. Bazı içerikler kısaltılmıştır.
ip_subnet_range
ip_subnet_range işlevi, bir IPv4 CIDR bloğunun başlangıç ve bitiş adreslerini döndürür.
Sözdizimi
ip_subnet_range(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
Bir JSON dizisi.
Örnekler
client_ip alanındaki IP adresini içeren IPv4 CIDR bloğunun adres aralığını alın.
-
Sorgu ve analiz ifadesi
* | SELECT ip_subnet_range(concat(client_ip,'/24')) Sorgu ve analiz sonuçları,
_col0sütununu içerir. Bu sütun, IPv4 CIDR bloğunun başlangıç ve bitiş adreslerini temsil eden["xxx.xxx.xxx.0","xxx.xxx.xxx.255"]gibi bir JSON dizisi içerir.
ipv6_to_city
ipv6_to_city işlevi, belirtilen bir IPv6 adresi için şehri döndürür.
Sözdizimi
ipv6_to_city(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
Şehre göre istekleri sayın.
-
Sorgu ve analiz ifadesi
* | SELECT ipv6_to_city(ipv6Address) AS city, count(*) AS count GROUP BY city Sorgu ve analiz sonuçları, her şehri ve kayıt sayısını listeler; örneğin Anyang (18), Baoding (42), Baoshan (3) ve Binzhou (9).
ipv6_to_city_code
ipv6_to_city_code işlevi, belirtilen bir IPv6 adresi için şehrin idari bölüm kodunu döndürür.
Sözdizimi
ipv6_to_city_code(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
Bu örnek, bir IPv6 adresi için şehrin idari bölüm kodunu alır.
-
Sorgu ifadesi
* | SELECT ipv6Address, ipv6_to_city_code(ipv6Address) AS cityCode WHERE cityCode <> '' Sorgu ve analiz sonuçları:
ipv6_to_city_codeişlevi IPv6 adresini dönüştürerek350100değerine sahip bir cityCode döndürür.
ipv6_to_city_geo
ipv6_to_city_geo işlevi, bir IPv6 adresi için boylam ve enlemi döndürür.
Sözdizimi
ipv6_to_city_geo(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
İşlev, boylam,enlem biçiminde bir varchar dizesi döndürür.
Örnekler
Bu örnek, istemci dağılımını analiz etmek için IPv6 adresleri için boylam ve enlemi almayı gösterir.
-
Sorgu ifadesi
* | SELECT ipv6_to_city_geo(ipv6Address) AS geo, count(*) AS PV GROUP BY geo ORDER BY PV DESC Sorgu,
geovePVsütunlarını döndürür. Örnek sonuçlar (geo, PV) çiftleri olarak sunulur: (133,397995,-24,9121, 6270), (10,45415,51,164181, 3813), (-2,23001,54,314072, 2055) ve (121,5654268,25,0329636, 1893).
ipv6_to_country
ipv6_to_country işlevi, belirtilen bir IPv6 adresinin ülke veya bölgesini tanımlar.
Sözdizimi
ipv6_to_country(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
Toplam istek sayısına göre ilk 10 ülke veya bölgeyi hesaplayın.
-
Sorgu ifadesi
* | SELECT count(*) AS PV, ipv6_to_country(ipv6Address) AS country WHERE country <> '' GROUP BY country ORDER BY PV DESC LIMIT 10 Sorgu ve analiz sonuçları: Sorgu 10 kayıt döndürür. Örneğin: Almanya (3813), Tayvan (2337), Birleşik Krallık (2055), İsveç (1119), Hollanda (1014), Amerika Birleşik Devletleri (942), Rusya (930) ve Malezya (867)...
ipv6_to_country_code
ipv6_to_country_code işlevi, bir IPv6 adresi için ülke veya bölge kodunu döndürür.
Sözdizimi
ipv6_to_country_code(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
Bir varchar değeri döndürür.
Örnekler
Bu örnek, bir IPv6 adresi için ülke veya bölge kodunu alır.
-
Sorgu ifadesi
* | SELECT ipv6Address, ipv6_to_country_code(ipv6Address) AS code WHERE cityCode <> '' Sorgu sonuçlarında,
ipv6_to_country_codeişlevi bir IPv6 adresini ülke koduna çözer; örneğin Çin'deki bir adres içinCNdöner.
ipv6_to_domain işlevi
ipv6_to_domain işlevi, bir IPv6 adresini özel adres veya genel adres olarak sınıflandırır.
Sözdizimi
ipv6_to_domain(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar. İşlev aşağıdaki değerlerden birini döndürür:
intranet: Özel bir adres.
internet: Genel bir adres.
Örnekler
Bu örnek, özel ağlardan ve genel ağlardan gelen istekleri sayar.
-
Sorgu ve analiz ifadesi
* | SELECT ipv6_to_domain(ipv6Address) AS domain, count(*) AS count GROUP BY domain Sorgu, domain ve count olmak üzere iki sütuna sahip bir tablo döndürür. Bu örnekte,
intranetsayısı 9 veinternetsayısı 38.067'dir.
ipv6_to_provider işlevi
ipv6_to_provider işlevi, belirtilen bir IPv6 adresi için İSS'yi döndürür.
Sözdizimi
ipv6_to_provider(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
Bu örnek, toplam isteğe göre ilk 10 İSS'yi bulur.
-
Sorgu ve analiz ifadesi
* | SELECT ipv6_to_provider(ipv6Address) AS provider, count(*) AS count GROUP BY provider ORDER BY count DESC LIMIT 10 Sorgu ve analiz sonuçları: Sorgu, istek sayısına göre azalan sırada sıralanmış bir İSS listesi döndürür. İlk 10 sonuç arasında
edu.tw(2235),colt.net(1512),maxis.com.my(780),citictel-cpc.com(453),CSTNET(348),ntt.com(261),att.com(258) velibertyglobal.com(174) gibi girişler bulunur.
ipv6_to_province işlevi
ipv6_to_province işlevi, bir IPv6 adresinin eyaletini döndürür.
Sözdizimi
ipv6_to_province(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
Bu örnek, toplam istek sayısına göre ilk 10 eyaleti bulur.
-
Sorgu ve analiz ifadesi
* | SELECT count(*) AS PV, ipv6_to_province(ipv6Address) AS province WHERE province <> '' GROUP BY province ORDER BY PV DESC LIMIT 10 Sorgu ve analiz sonuçları: Sorgu, PV'ye göre azalan sırada sıralanmış PV ve province sütunlarını döndürür. Örnek sonuçlar arasında Jiangsu (564), Guangdong (558), Kuala Lumpur Federal Bölgesi (555), Shandong (507), Henan (435), Sichuan (354), Zhejiang (336) ve Anhui (312) yer alır.
ipv6_to_province_code işlevi
ipv6_to_province_code işlevi, belirtilen bir IPv6 adresi için eyaletin idari bölüm kodunu döndürür.
Sözdizimi
ipv6_to_province_code(x)
Parametreler
|
|
|
|
|
|
Dönüş değeri türü
varchar
Örnekler
Bir IPv6 adresiyle ilişkili eyaletin idari bölüm kodunu alın.
-
Sorgu ifadesi
* | SELECT ipv6Address, ipv6_to_province_code(ipv6Address) AS code WHERE cityCode <> '' Sorgu sonuçları: ipv6Address sütunu birkaç kısaltılmış IPv6 adresini listelerken code sütunu bunlara karşılık gelen eyalet kodunu gösterir:
350000.