我在SQLSERVER 2008數據庫上存儲IPV4地址爲二進制(4)。所以,我在數據輸入之前轉換了這些值(並且由於公司的限制,我不能在db中創建函數,以及不需要討論的內容)。將IP轉換爲字節/轉換回字符串
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億行代碼?
你如何存儲在4個字節的IPv6地址? – dtb
僅限於IPV4 – Alexandre
您在2013年編寫的新代碼不支持IPv6?這就像在1999年編寫新代碼一樣,只支持兩位數字的日期。 [Y2K](http://en.wikipedia.org/wiki/Year_2000_problem) – dtb