使用Hibernate在数据库中存储IP地址的最佳类型是什么?
我虽然是Byte []或String,但是有没有更好的方法,或者您使用什么呢?
@Column(name = "range_from", nullable = false) public Byte[] getRangeFrom() { return rangeFrom; } public void setRangeFrom(Byte[] rangeFrom) { this.rangeFrom = rangeFrom; }
我将其存储在很 长 很 长的时间内 以进行查找。您可以使用以下功能进行转换。
public static string GetStandardIP(long numericIP) { string w = Convert.ToString(Convert.ToInt64(numericIP / 16777216) % 256); string x = Convert.ToString(Convert.ToInt64(numericIP / 65536) % 256); string y = Convert.ToString(Convert.ToInt64(numericIP / 256) % 256); string z = Convert.ToString(Convert.ToInt64(numericIP) % 256); return w + "." + x + "." + y + "." + z; }
还有这个
public static long GetNumericIP(string standardIP) { if (standardIP != null && standardIP != string.Empty) { string[] ipParts = standardIP.Split('.'); long numericIP = 16777216 * Convert.ToInt64(ipParts[0]) + 65536 * Convert.ToInt64(ipParts[1]) + 256 * Convert.ToInt32(ipParts[2]) + Convert.ToInt32(ipParts[3]); return numericIP; } return 0; }
您可能需要通过检查参数来改进它们。