gpt4 book ai didi

C# 如何测试 IPAddress 是否在子网中?

转载 作者:太空宇宙 更新时间:2023-11-03 22:06:44 24 4
gpt4 key购买 nike

好吧,这是一个小问题……但仍然令人恼火。

在 MSVS 2008 .NET 3.5 中,我的 IPAdress.Address 很长,我只是使用了

if(subnet == subnetmask.Address & addr.Address) { ... }

现在我刚刚安装了 MSVS 2010,仍在使用 .NET 3.5,但它以某种方式告诉我 IPAddress.Address 已过时。

我仍然可以在 BitConverter.ToInt64(subnet.GetAddressBytes(), 0) 中包装一个 BitConvertor,但感觉就像我在倒退。是否有更优雅的方法或内置函数来检查子网?

谢谢。

最佳答案

IPAddress.Address 被标记为过时的原因是:

This property has been deprecated. It is address family dependent. Please use IPAddress.Equals method to perform comparisons. http://go.microsoft.com/fwlink/?linkid=14202

随着 IPv6 的到来,取决于 IPv4 的特定特性应该被视为过时了。您的解决方法有同样的问题 - 对 IPv4 的依赖。我认为您有两种选择:

  • 让您的应用程序仅使用 IPv4 并禁止显示过时的警告。
  • 了解如何使该功能在 IPv6 和 IPv4 中均有效。

关于C# 如何测试 IPAddress 是否在子网中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8179238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com