警告 CS0618:'IPAddress.Address' 已过时:'此 属性 已被弃用
warning CS0618: 'IPAddress.Address' is obsolete: 'This property has been deprecated
warning CS0618: 'IPAddress.Address' is obsolete: 'This property has
been deprecated. It is address family dependent. Please use
IPAddress.Equals method to perform comparisons.
将 IP 地址的八进制表示形式转换为无符号整数(包含在 long 中)。
public static long CastIp(string ip)
{
return (long)(uint)IPAddress.NetworkToHostOrder((int)IPAddress.Parse(ip).Address);
}
它给了我这个警告;如果上面的代码中没有 IPAddress,我该怎么做才能完成同样的事情?
IPAddress.Address
的 documentation 说:
This property is obsolete. Use GetAddressBytes.
所以我建议你这样做:
public static long CastIp(string ip)
{
IPAddress address = IPAddress.Parse(ip);
byte[] addressBytes = address.GetAddressBytes();
// This restriction is implicit in your existing code, but
// it would currently just lose data...
if (addressBytes.Length != 4)
{
throw new ArgumentException("Must be an IPv4 address");
}
int networkOrder = BitConverter.ToInt32(addressBytes, 0);
return (uint) IPAddress.NetworkToHostOrder(networkOrder);
}
这似乎给出了相同的结果,在我试过的测试中......你应该检查它是否完全符合你的要求,因为它并不清楚你的期望。
warning CS0618: 'IPAddress.Address' is obsolete: 'This property has been deprecated. It is address family dependent. Please use IPAddress.Equals method to perform comparisons.
将 IP 地址的八进制表示形式转换为无符号整数(包含在 long 中)。
public static long CastIp(string ip)
{
return (long)(uint)IPAddress.NetworkToHostOrder((int)IPAddress.Parse(ip).Address);
}
它给了我这个警告;如果上面的代码中没有 IPAddress,我该怎么做才能完成同样的事情?
IPAddress.Address
的 documentation 说:
This property is obsolete. Use GetAddressBytes.
所以我建议你这样做:
public static long CastIp(string ip)
{
IPAddress address = IPAddress.Parse(ip);
byte[] addressBytes = address.GetAddressBytes();
// This restriction is implicit in your existing code, but
// it would currently just lose data...
if (addressBytes.Length != 4)
{
throw new ArgumentException("Must be an IPv4 address");
}
int networkOrder = BitConverter.ToInt32(addressBytes, 0);
return (uint) IPAddress.NetworkToHostOrder(networkOrder);
}
这似乎给出了相同的结果,在我试过的测试中......你应该检查它是否完全符合你的要求,因为它并不清楚你的期望。