Topik ini menjelaskan sintaksis fungsi IP serta memberikan contoh penggunaannya.
Tabel berikut menjelaskan fungsi IP yang didukung oleh Simple Log Service.
Jika Anda ingin menggunakan string dalam pernyataan analitik, apit string tersebut dengan tanda kutip tunggal (''). String tanpa tanda kutip atau yang diapit dengan tanda kutip ganda ("") menunjukkan nama bidang atau kolom. Sebagai contoh, 'status' menunjukkan string status, sedangkan status atau "status" menunjukkan bidang log status.
Kategori | Fungsi | Sintaksis | Deskripsi | Didukung di SQL | Didukung di SPL |
Fungsi alamat IPv4 | ip_to_city(x) | Mengidentifikasi kota tempat alamat IPv4 berada. Fungsi ini mengembalikan nama Cina dari sebuah kota. | √ | × | |
ip_to_city(x, 'en') | Mengidentifikasi kota tempat alamat IPv4 berada. Fungsi ini mengembalikan kode divisi administratif sebuah kota. | √ | × | ||
ip_to_city_geo(x) | Mengidentifikasi garis lintang dan bujur kota tempat alamat IPv4 berada. Fungsi ini mengembalikan garis lintang dan bujur sebuah kota. Setiap kota hanya memiliki satu set koordinat. | √ | × | ||
ip_to_country(x) | Mengidentifikasi negara atau wilayah tempat alamat IPv4 berada. Fungsi ini mengembalikan nama Cina dari sebuah negara atau wilayah. | √ | × | ||
ip_to_country(x, 'en') | Mengidentifikasi negara atau wilayah tempat alamat IPv4 berada. Fungsi ini mengembalikan kode dari sebuah negara atau wilayah. | √ | × | ||
ip_to_country_code(x) | Mengidentifikasi negara atau wilayah tempat alamat IPv4 berada. Fungsi ini mengembalikan kode dari sebuah negara atau wilayah. | √ | × | ||
ip_to_domain(x) | Memeriksa apakah alamat IPv4 adalah alamat privat atau publik. | √ | × | ||
ip_to_geo(x) | Mengidentifikasi garis lintang dan bujur lokasi alamat IPv4. | √ | × | ||
ip_to_provider(x) | Mengidentifikasi penyedia layanan internet (ISP) dari alamat IPv4. | √ | × | ||
ip_to_province(x) | Mengidentifikasi negara bagian tempat alamat IPv4 berada. Fungsi ini mengembalikan nama Cina dari sebuah negara bagian. | √ | × | ||
ip_to_province(x, 'en') | Mengidentifikasi negara bagian tempat alamat IPv4 berada. Fungsi ini mengembalikan kode divisi administratif sebuah negara bagian. | √ | × | ||
Fungsi blok CIDR IPv4 | ip_prefix(x, prefix_bits) | Mengembalikan awalan dari alamat IPv4. | √ | × | |
is_prefix_subnet_of(x, y) | Memeriksa apakah blok CIDR IPv4 merupakan subnet dari blok CIDR tertentu. | √ | × | ||
is_subnet_of(x, y) | Memeriksa apakah alamat IPv4 berada dalam blok CIDR tertentu. | √ | × | ||
ip_subnet_max(x) | Mengembalikan alamat IP terbesar dalam blok CIDR IPv4. | √ | × | ||
ip_subnet_min(x) | Mengembalikan alamat IP terkecil dalam blok CIDR IPv4. | √ | × | ||
ip_subnet_range(x) | Mengembalikan rentang blok CIDR IPv4. | √ | × | ||
Fungsi alamat IPv6 | ipv6_to_city(x) | Mengidentifikasi kota tempat alamat IPv6 berada. | √ | × | |
ipv6_to_city_code(x) | Mengidentifikasi kode divisi administratif kota tempat alamat IPv6 berada. | √ | × | ||
ipv6_to_city_geo(x) | Mengidentifikasi garis lintang dan bujur kota tempat alamat IPv6 berada. | √ | × | ||
ipv6_to_country(x) | Mengidentifikasi negara atau wilayah tempat alamat IPv6 berada. | √ | × | ||
ipv6_to_country_code(x) | Mengidentifikasi kode negara atau wilayah tempat alamat IPv6 berada. | √ | × | ||
ipv6_to_domain(x) | Memeriksa apakah alamat IPv6 adalah alamat privat atau publik. | √ | × | ||
ipv6_to_provider(x) | Mengidentifikasi ISP dari alamat IPv6. | √ | × | ||
ipv6_to_province(x) | Mengidentifikasi provinsi tempat alamat IPv6 berada. | √ | × | ||
ipv6_to_province_code(x) | Mengidentifikasi kode divisi administratif provinsi tempat alamat IPv6 berada. | √ | × |
fungsi ip_to_city
Fungsi ip_to_city mengidentifikasi kota dari alamat IPv4.
Sintaksis
Jika menggunakan sintaksis berikut, fungsi ini mengembalikan nama Cina dari sebuah kota.
ip_to_city(x)Jika menggunakan sintaksis berikut, fungsi ini mengembalikan kode divisi administratif sebuah kota.
ip_to_city(x,'en')
Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv4. |
Tipe nilai kembali
Tipe varchar.
Contoh
Menghitung waktu pemrosesan rata-rata dan maksimum permintaan berdasarkan kota, serta mendapatkan ID permintaan dengan waktu pemrosesan maksimum.
Pernyataan Kueri
* | 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 cityHasil Kueri dan Analisis

fungsi ip_to_city_geo
Fungsi ip_to_city_geo mengidentifikasi garis lintang dan bujur kota dari alamat IPv4. Fungsi ini mengembalikan satu set koordinat untuk setiap kota.
Sintaksis
ip_to_city_geo(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv4. |
Tipe nilai kembali
Tipe varchar. Format: latitude,longitude.
Contoh
Mendapatkan garis lintang dan bujur alamat IPv4 serta distribusi klien.
Pernyataan Kueri
* | SELECT count(*) AS PV, ip_to_city_geo(client_ip) AS geo GROUP BY geo ORDER BY PV DESCHasil Kueri dan Analisis

fungsi ip_to_country
Fungsi ip_to_country mengidentifikasi negara atau wilayah dari alamat IPv4.
Sintaksis
Jika menggunakan sintaksis berikut, fungsi ini mengembalikan nama Cina dari sebuah negara atau wilayah.
ip_to_country(x)Jika menggunakan sintaksis berikut, fungsi ini mengembalikan kode negara atau wilayah.
ip_to_country(x,'en')
Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv4. |
Tipe nilai kembali
Tipe varchar.
Contoh
Menghitung waktu pemrosesan rata-rata dan maksimum permintaan berdasarkan negara atau wilayah, serta mendapatkan ID permintaan dengan waktu pemrosesan maksimum.
Pernyataan Kueri
* | 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 countryHasil Kueri dan Analisis

fungsi ip_to_country_code
Fungsi ip_to_country_code mengidentifikasi kode negara atau wilayah dari alamat IPv4.
Sintaksis
ip_to_country_code(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv4. |
Tipe nilai kembali
Tipe varchar.
Contoh
Menghitung waktu pemrosesan rata-rata dan maksimum permintaan berdasarkan negara atau wilayah, serta mendapatkan ID permintaan dengan waktu pemrosesan maksimum.
Pernyataan Kueri
* | 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 countryHasil Kueri dan Analisis

fungsi ip_to_domain
Fungsi ip_to_domain memeriksa apakah alamat IPv4 adalah privat atau publik.
Sintaksis
ip_to_domain(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv4. |
Tipe nilai kembali
Tipe varchar. Fungsi ini hanya mengembalikan intranet atau internet.
intranet: alamat privat.
internet: alamat publik.
Contoh
Menghitung jumlah total permintaan yang tidak dikirim dari jaringan internal.
Pernyataan Kueri
* | SELECT count(*) AS PV WHERE ip_to_domain(client_ip) != 'intranet'Hasil Kueri dan Analisis

fungsi ip_to_geo
Fungsi ip_to_geo mengidentifikasi garis lintang dan bujur lokasi alamat IPv4. Untuk informasi lebih lanjut tentang fungsi geohash, lihat Fungsi Geo.
Sintaksis
ip_to_geo(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv4. |
Tipe nilai kembali
Tipe varchar. Format: latitude,longitude.
Contoh
Mendapatkan garis lintang dan bujur alamat IPv4 serta distribusi klien.
Pernyataan Kueri
* | SELECT count(*) AS PV, ip_to_geo(client_ip) AS geo GROUP BY geo ORDER BY PV DESCHasil Kueri dan Analisis

fungsi ip_to_provider
Fungsi ip_to_provider mengidentifikasi ISP dari alamat IPv4.
Sintaksis
ip_to_provider(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv4. |
Tipe nilai kembali
Tipe varchar.
Contoh
Menghitung waktu pemrosesan rata-rata permintaan berdasarkan ISP.
Pernyataan Kueri
* | SELECT avg(request_time) AS avg_request_time, ip_to_provider(client_ip) AS provider GROUP BY provider ORDER BY avg_request_timeHasil Kueri dan Analisis

fungsi ip_to_province
Fungsi ip_to_province mengidentifikasi negara bagian dari alamat IPv4.
Sintaksis
Jika menggunakan sintaksis berikut, fungsi ini mengembalikan nama Cina dari sebuah negara bagian.
ip_to_province(x)Jika menggunakan sintaksis berikut, fungsi ini mengembalikan nama Inggris dari sebuah negara bagian.
ip_to_province(x,'en')
Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv4. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan 10 negara bagian teratas berdasarkan jumlah total permintaan.
Pernyataan Kueri
* | SELECT count(*) as PV, ip_to_province(client_ip) AS province GROUP BY province ORDER BY PV desc LIMIT 10Untuk mengecualikan permintaan dari jaringan internal saat mendapatkan 10 negara bagian teratas, gunakan pernyataan kueri berikut:
* | 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 10Hasil Kueri dan Analisis

fungsi ip_prefix
Fungsi ip_prefix mengembalikan awalan alamat IPv4 dalam format subnet mask. Contoh: 192.168.1.0/24.
Sintaksis
ip_prefix(x, prefix_bits)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv4. |
prefix_bits | Parameter ini menentukan panjang awalan. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan awalan alamat IPv4 dalam nilai bidang client_ip.
Pernyataan Kueri
* | SELECT ip_prefix(client_ip,24) AS client_ipHasil Kueri dan Analisis

fungsi is_prefix_subnet_of
Fungsi is_prefix_subnet_of memeriksa apakah blok CIDR IPv4 merupakan subnet dari blok CIDR tertentu.
Sintaksis
is_prefix_subnet_of(x, y)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah blok CIDR IPv4. Fungsi ini memeriksa apakah blok CIDR y merupakan subnet dari blok CIDR x. |
y | Nilai parameter ini adalah blok CIDR IPv4. |
Tipe nilai kembali
Tipe Boolean.
Contoh
Memeriksa apakah blok CIDR IPv4 dalam nilai bidang client_ip merupakan subnet dari 192.168.0.1/24.
Pernyataan Kueri
* | SELECT is_prefix_subnet_of('192.168.0.1/24',concat(client_ip,'/24'))Hasil Kueri dan Analisis

fungsi is_subnet_of
Fungsi is_subnet_of memeriksa apakah alamat IPv4 berada dalam blok CIDR tertentu.
Sintaksis
is_subnet_of(x, y)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah blok CIDR IPv4. |
y | Nilai parameter ini adalah alamat IPv4. |
Tipe nilai kembali
Tipe Boolean.
Contoh
Memeriksa apakah alamat IPv4 dalam nilai bidang client_ip berada di 192.168.0.1/24.
Pernyataan Kueri
* | SELECT is_subnet_of('192.168.0.1/24',client_ip)Hasil Kueri dan Analisis

fungsi ip_subnet_min
Fungsi ip_subnet_min mengembalikan alamat IP terkecil dalam blok CIDR IPv4.
Sintaksis
ip_subnet_min(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah blok CIDR IPv4. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan alamat IP terkecil dalam blok CIDR IPv4 tempat alamat IP dalam nilai bidang client_ip berada.
Pernyataan Kueri
* | SELECT ip_subnet_min(concat(client_ip,'/24'))Hasil Kueri dan Analisis

fungsi ip_subnet_max
Fungsi ip_subnet_max mengembalikan alamat IP terbesar dalam blok CIDR IPv4.
Sintaksis
ip_subnet_max(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah blok CIDR IPv4. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan alamat IP terbesar dalam blok CIDR IPv4 tempat alamat IP dalam nilai bidang client_ip berada.
Pernyataan Kueri
* | SELECT ip_subnet_max(concat(client_ip,'/24'))Hasil Kueri dan Analisis

fungsi ip_subnet_range
Fungsi ip_subnet_range mengembalikan rentang blok CIDR IPv4.
Sintaksis
ip_subnet_range(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah blok CIDR IPv4. |
Tipe nilai kembali
Tipe JSON.
Contoh
Mendapatkan rentang blok CIDR IPv4 tempat alamat IP dalam nilai bidang client_ip berada.
Pernyataan Kueri
* | SELECT ip_subnet_range(concat(client_ip,'/24'))Hasil Kueri dan Analisis

fungsi ipv6_to_city
Fungsi ipv6_to_city mengidentifikasi kota dari alamat IPv6.
Sintaksis
ipv6_to_city(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv6. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan jumlah permintaan yang dikirim dari berbagai kota.
Pernyataan Kueri
* | SELECT ipv6_to_city(ipv6Address) AS city, count(*) AS count GROUP BY cityHasil Kueri dan Analisis

fungsi ipv6_to_city_code
Fungsi ipv6_to_city_code mengidentifikasi kode divisi administratif kota dari alamat IPv6.
Sintaksis
ipv6_to_city_code(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv6. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan kode divisi administratif kota dari alamat IPv6.
Pernyataan Kueri
* | SELECT ipv6Address, ipv6_to_city_code(ipv6Address) AS cityCode WHERE cityCode <> ''Hasil Kueri dan Analisis

fungsi ipv6_to_city_geo
Fungsi ipv6_to_city_geo mengidentifikasi garis lintang dan bujur kota dari alamat IPv6.
Sintaksis
ipv6_to_city_geo(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv6. |
Tipe nilai kembali
Tipe varchar. Format: longitude,latitude.
Contoh
Mendapatkan garis lintang dan bujur alamat IPv6 serta distribusi klien.
Pernyataan Kueri
* | SELECT ipv6_to_city_geo(ipv6Address) AS geo, count(*) AS PV GROUP BY geo ORDER BY PV DESCHasil Kueri dan Analisis

fungsi ipv6_to_country
Fungsi ipv6_to_country mengidentifikasi negara atau wilayah dari alamat IPv6.
Sintaksis
ipv6_to_country(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv6. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan 10 negara atau wilayah teratas berdasarkan jumlah total permintaan.
Pernyataan Kueri
* | SELECT count(*) AS PV, ipv6_to_country(ipv6Address) AS country WHERE country <> '' GROUP BY country ORDER BY PV DESC LIMIT 10Hasil Kueri dan Analisis

fungsi ipv6_to_country_code
Fungsi ipv6_to_country_code mengidentifikasi kode negara atau wilayah dari alamat IPv6.
Sintaksis
ipv6_to_country_code(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv6. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan kode negara atau wilayah dari alamat IPv6.
Pernyataan Kueri
* | SELECT ipv6Address, ipv6_to_country_code(ipv6Address) AS code WHERE cityCode <> ''Hasil Kueri dan Analisis

fungsi ipv6_to_domain
Fungsi ipv6_to_domain memeriksa apakah alamat IPv6 adalah privat atau publik.
Sintaksis
ipv6_to_domain(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv6. |
Tipe nilai kembali
Tipe varchar. Fungsi ini hanya mengembalikan intranet atau internet.
intranet: alamat privat.
internet: alamat publik.
Contoh
Mendapatkan jumlah total permintaan yang dikirim melalui jaringan internal dan Internet.
Pernyataan Kueri
* | SELECT ipv6_to_domain(ipv6Address) AS domain, count(*) AS count GROUP BY domainHasil Kueri dan Analisis

fungsi ipv6_to_provider
Fungsi ipv6_to_provider mengidentifikasi ISP dari alamat IPv6.
Sintaksis
ipv6_to_provider(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv6. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan 10 ISP teratas berdasarkan jumlah total permintaan.
Pernyataan Kueri
* | SELECT ipv6_to_provider(ipv6Address) AS provider, count(*) AS count GROUP BY provider ORDER BY count DESC LIMIT 10Hasil Kueri dan Analisis

fungsi ipv6_to_province
Fungsi ipv6_to_province mengidentifikasi provinsi dari alamat IPv6.
Sintaksis
ipv6_to_province(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv6. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan 10 provinsi teratas berdasarkan jumlah total permintaan.
Pernyataan Kueri
* | SELECT count(*) AS PV, ipv6_to_province(ipv6Address) AS province WHERE province <> '' GROUP BY province ORDER BY PV DESC LIMIT 10Hasil Kueri dan Analisis

fungsi ipv6_to_province_code
Fungsi ipv6_to_province_code mengidentifikasi kode divisi administratif provinsi dari alamat IPv6.
Sintaksis
ipv6_to_province_code(x)Parameter
Parameter | Deskripsi |
x | Nilai parameter ini adalah alamat IPv6. |
Tipe nilai kembali
Tipe varchar.
Contoh
Mendapatkan kode divisi administratif provinsi dari alamat IPv6.
Pernyataan Kueri
* | SELECT ipv6Address, ipv6_to_province_code(ipv6Address) AS code WHERE cityCode <> ''Hasil Kueri dan Analisis
