IPFROMINT 函式

從 32 位元整數輸入計算四個八位元組成的網際網路通訊協定 (IP) 位址。

來源值必須是下列公式指定範圍內的有效整數。有效的 IPv4 位址採用下列格式:

aaa.bbb.ccc.ddd

附註:不支援 IPv6 位址。

用來計算 IP 位址對應的整數值公式如下:

(aaa * 2563) + (bbb * 2562) + (ccc * 256) + (ddd)

如此,計算這個 IP 位址的公式如下:

Inputaaabbbcccddd
X

aaa = floor(Input / (256 3 ))

remainderA = Input - aaa

bbb = floor(remainderA / (256 2 ))

remainderB = remainderA - bbb

ccc = floor(remainderB / 256)

remainderC = remainderB - ccc

ddd = remainderC

輸出值:

Output = aaa + '.' + bbb + '.' + ccc + '.' + ddd

基本用法

數值文字範例:

derive type:single value: IPFROMINT('16909060' ) as:'ip_addr'

輸出:產生含有 IP 位址 1.2.3.4 的資料欄。

資料欄參照範例:

derive type:single value: IPFROMINT(IpInt) as: 'ip_addr'

輸出:產生新的 ip_addr 資料欄,其中包含轉換成 IP 位址值的 IpInt 資料欄值。

語法

derive type:single value: IPFROMINT(column_int)

引數是否必要?資料類型說明
column_int字串或整數值要轉換成 IP 位址值的資料欄名稱或整數文字

若要進一步瞭解語法標準,請參閱語言文件語法附註

column_int

值要用來計算對應的 IP 位址值的資料欄名稱或整數文字。

  • 如果系統找不到輸入值,則產生的結果也會遺漏該值。
  • 不支援多個資料欄和萬用字元。

使用須知:

是否必要?資料類型示例值
整數文字或資料欄參照16909060

範例

範例 - 將 IP 位址轉換成整數

這個範例會說明如何將 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 說明文件
需要協助嗎?請前往我們的支援網頁