使用 SQL 转换 ForeFront 防火墙日志中的 IP 地址格式

使用 SQL 转换 ForeFront 防火墙日志中的 IP 地址格式

我正在尝试从 Forefront 防火墙日志中查询 IP 地址,但对 IP 格式有点困惑

C0A8E008-FFFF-0000-0000-000000000000

谁能给我提供 MSSQL 命令来将其转换为标准人类可读格式?

更新,我现在发现我需要将前 8 个字符从十六进制转换为十进制......然后我可以将其转换为 IP。诀窍是使用 SQL 解析字段中的前几个字符

答案1

您可以使用 substring 函数获取 IP 地址的四个八位字节。您可以执行以下操作:

SELECT hex_to_dec(substring(field, 1, 2)) + '.' + hex_to_dec(substring(field, 3, 2))
 + '.' + hex_to_dec(substring(field, 5, 2)) + '.' + hex_to_dec(substring(field, 7, 2))
 <FROM, WHERE ...>

我不确定 MSSQL 是否具有将十六进制转换为十进制的函数hex_to_sec。您只需要找到一种适当的方法来实现它。

答案2

我不知道如何在 MSSQL 中执行此操作,但为了让您了解该方法,在上面的示例中,C0A8E008 是 192.168.224.08。将 C0A8E008 拆分为四个 2 十六进制数字块,然后将每个块转换为十进制。

相关内容