我们使用子网对计算机资产进行地理定位。在最新数据中,我们没有子网(例如 10.81.66.0),只有 IP 地址和子网掩码,例如 255.255.255.0。
有没有办法用 SQL 把一列 IP 地址(比如 10.81.66.99)和子网掩码 255.255.255.0 转换成子网掩码,比如上面的 10.81.66.0。我知道用 24 位掩码会容易得多,但我需要这种方法适用于任何子网掩码。
我不确定您是否想将VARCHAR
IP 地址转换为 1 和 0 的二进制映射,以便对 IP 地址和子网掩码进行按位比较,保留相同的 1,然后再以某种方式将它们转换回来?任何帮助都将不胜感激,因为每次我花时间解决这个问题时,我都会头疼。
SQL 版本:Microsoft SQL Server 2019(KB5021124)-15.0.4280.7(X64)2023 年 1 月 23 日 12:37:13
基本查询:
从 IP 源中选择计算机名、IP、子网掩码
示例输出:
计算机99,10.81.66.99,255.255.255.0
所需输出示例:
计算机99,10.81.66.99,255.255.255.0,10.81.66.0