如何解决.NET Core PrefixOrigin逻辑
我正在将一些Windows代码移植到Linux。 Windows对象的部分属性未在.net core的linux实现中实现。 UnicastIPAddressInformation.PrefixOrigin就是其中之一。
.NET Core代码文档显示将其定义为:
用于标识单播IP地址前缀的来源的值。
MSDN将其定义为:
指定IP地址网络前缀的定位方式。
我正在.NET Core存储库浏览器中搜索此属性的实现,该属性返回以下枚举:
public enum PrefixOrigin
{
Other = 0,Manual,WellKnown,Dhcp,RouterAdvertisement,}
在.NET Core存储库浏览器中找不到实现UnicastIPAddressInformation
的类。在.NET Framework回购浏览器中,我了解通过将OS数据编组为C#类/类型,为结构IdAdapterUnicastAddress
分配了PrefixOrigin
。无论如何,我现在不知道如何确定应该将哪个枚举值应用于给定IP。
我几乎不了解计算机网络,我正在研究什么是IP前缀以及如何弄清楚它。我可以找到的实际示例是this one。据我了解,但是,它提供了一种计算前缀长度的方法。我仍然需要知道如何确定给定IP的PrefixOrigin
枚举值。
是否可以通过简单地考虑前缀长度来完成?如果没有,如何确定给定IP的哪个PrefixOrigin
值?
解决方法
该字段的值告诉您如何确定系统上已配置(或自动配置)的IP地址。
手册:有人将其键入控制面板中的适配器配置GUI或使用例如netsh
或类似的内容。
众所周知:来自知名来源。我不确定Windows是否使用此值。在没有其他任何配置的情况下分配了169.254.x.x
地址并且不存在DHCP服务器时,可以使用它。
DHCP :当DHCP服务器自动分配IP地址时(几乎在所有家庭和办公室网络中都是这样(但有时在数据中心网络中则没有这种情况)),这就是您可以知道的。
路由器广告:IPv6具有一个自动配置系统,该系统应该替代DHCP。为简单起见,请认为这与字段的DHCP值在功能上相同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。