IPV4アドレスをSQLSERVER2008データベースに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億行のコードなしでまともな解決策を考え出すことができますか?