Função IPTOINT

Computa um valor inteiro para um endereço IP de quatro octetos. O valor de origem precisa ser um endereço IP válido ou uma referência de coluna para endereços desse tipo.Os endereços IP precisam estar no seguinte formato:

aaa.bbb.ccc.ddd

em que aaa, bbb, ccc e ddd são inteiros de 0 a 255, inclusive.

OBSERVAÇÃO: os endereços IPv6 não são aceitos.

A fórmula usada para computar o inteiro equivalente do endereço IP acima é a seguinte:

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

Assim, cada endereço IP válido tem um equivalente inteiro único.

Uso básico

Exemplo de literal numérico:

derive value: IPTOINT('1.2.3.4' ) as:'myAddress'

Saída: gera uma coluna contendo o valor inteiro 16909060:

Exemplo de referência de coluna:

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

Resultado: gera a nova coluna ip_as_int contendo o valor da coluna IpAddr convertido em um valor inteiro.

Sintaxe

derive value: IPTOINT(column_ipaddr)

ArgumentoObrigatório?Tipo de dadoDescrição
column_ipaddrSstringNome da coluna ou literal de string identificando o endereço IP a ser convertido em um valor inteiro

Para mais informações sobre os padrões de sintaxe, consulte Notas de sintaxe da documentação da linguagem.

column_ipaddr

Nome da coluna ou inteiro literal cujos valores são usados para computar o valor do endereço IP equivalente.

  • Valores de entrada ausentes geram resultados ausentes.
  • Várias colunas e caracteres curinga não são aceitos.

Observações de uso:

Obrigatório?Tipo de dadoValor do exemplo
SimLiteral de string ou referência de coluna (endereço IP)4.3.2.1

Exemplos

Exemplo: converter endereços IP em inteiros

Este exemplo ilustra como você pode converter endereços IP em valores numéricos para fins de comparação e classificação. Este exemplo ilustra as seguintes funções:

  • IPTOINT: converte um endereço IP em um valor inteiro de acordo com uma fórmula. Consulte Função IPTOINT.
  • IPFROMINT: reconverte um valor inteiro em um endereço IP de acordo com a fórmula. Consulte Função IPFROMINT.

Origem:

O conjunto de dados inclui os seguintes valores para endereços 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

Transformação:

Quando os dados acima são importados, o aplicativo inicialmente classifica a coluna como valores de URL, devido à presença dos identificadores de protocolo http:// e https://. Selecione o tipo de dados do endereço IP para a coluna. Os três últimos valores estão listados como valores incompatíveis. Corrija os problemas com as duas últimas entradas, aplicando a seguinte transformação, que corresponde às strings http:// e https://:

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

OBSERVAÇÃO: o padrão %? do Cloud Dataprep corresponde a zero ou uma vez em qualquer caractere, o que permite a correspondência nas duas variantes do identificador de protocolo.

Agora, apenas o valor 1.2.3 é incompatível. Talvez você saiba que falta um zero ao final. Para adicioná-lo novamente, proceda da seguinte maneira:

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

Todos os valores na coluna são válidos para o tipo de dados de endereço IP. Para converter esses valores em equivalentes inteiros:

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

Agora é possível manipular os dados com base nesta chave numérica. Para converter os valores inteiros de volta em endereços IP para fins de verificação, use o seguinte código:

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

Resultados:

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