我在 SQLSERVER 2008 数据库中将 IPV4 地址存储为 Binary(4)。所以,我在数据输入之前转换了值(并且由于公司的限制,我不能在数据库中创建函数,这不讨论了)。
public static byte[] IpToBin(string ip)
{
return IPAddress.Parse(ip).GetAddressBytes();
}
public static string HexToIp(string ip)
{
return new IPAddress(long.Parse(ip, NumberStyles.HexNumber)).ToString();
}
调用 IpToBin 后,生成的数据为(例如 0x59FC09F3)。当我调用 HexToIp 时,ip 可能由于小/大端转换而反转。
任何人都可以在没有 500 亿行代码的情况下提出一个体面的解决方案吗?