範例 - IPTOINT 函式

這個範例說明如何將 IP 位址轉換成數字值,以用於比較和排序。此範例說明下列函式:

  • IPTOINT - 依據公式,將 IP 位址轉換成整數值。請參閱 IPTOINT 函式一文。
  • IPFROMINT - 依據公式,將整數值轉換回 IP 位址。請參閱 IPFROMINT 函式一文。

來源:

您的資料集包含下列 IP 位址值:

IpAddr
192.0.0.1
10.10.10.10
1.2.3.4
1.2.3
http://12.13.14.15
https://16.17.18.19

轉換:

匯入上述資料時,因為有 http://https:// 通訊協定 ID,因此應用程式一開始會將資料欄的類型設為網址值。請為資料欄選取 IP 位址資料類型。最後三個值會列為不相符的值。您可以套用下列轉換指令,對 http://https:// 字串進行比對,藉此修正最後兩個項目的問題:

replace col:IpAddr with:'' on:`http%?://`

注意:%? Cloud Dataprep 模式會比對任何字元零次或一次,以便比對兩種版本的通訊協定 ID。

現在只有 1.2.3 是不相符的值。或許您知道結尾少了一個 0。如果要把 0 加回去,您可以執行下列指令:

replace col: IpAddr on: `1.2.3{end}` with: '1.2.3.0' global: true

資料欄中的值現在應該全都是有效的 IP 位址資料類型。使用下列指令即可將這些值轉換成對應的整數:

derive type:single value:IPTOINT(IpAddr) as:'ip_as_int'

您現在可以根據這個數字鍵操控資料。如要將整數值轉換回 IP 位址以進行檢查,請使用下列指令:

derive type:single value:IPFROMINT(ip_as_int) as:'ip_check'

結果:

Xip_as_intip_check
192.0.0.13221225473192.0.0.1
10.10.10.1016843009010.10.10.10
1.2.3.4169090601.2.3.4
1.2.3.0169090561.2.3.0
12.13.14.1520218215912.13.14.15
16.17.18.1926955419516.17.18.19
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁