networking - .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 存储库浏览器中,我了解结构IdAdapterUnicastAddress
是通过将PrefixOrigin
OS 数据编组为 C# 类/类型来分配的。无论如何,我现在不知道如何确定应该将哪个枚举值应用于给定的 IP。
对计算机网络几乎一无所知,我正在研究什么是 IP 前缀以及如何弄清楚它。我能找到的实际例子就是这个。但是,据我了解,它提供了一种计算前缀长度的方法。我仍然需要知道如何确定PrefixOrigin
给定 IP 的枚举值。
是否可以通过简单地考虑前缀长度来完成?如果不是,我如何确定PrefixOrigin
应该为给定 IP 分配哪个值?
解决方案
该字段的值告诉您如何确定系统上已配置(或自动配置)的 IP 地址。
手动:有人将其键入控制面板中的适配器配置 GUI 或使用例如netsh
或类似方法进行设置。
众所周知:来自众所周知的来源。我不确定 Windows 是否使用此值。169.254.x.x
当在没有任何其他配置的情况下分配地址并且不存在 DHCP 服务器时,可能会使用它。
DHCP:当 DHCP 服务器自动分配 IP 地址时,几乎所有家庭和办公室网络都是这种情况(但有时不是在数据中心网络上!),这就是您可以判断的方式。
路由器广告:IPv6 有一个自动配置系统,它应该取代 DHCP。为简单起见,将其视为在功能上与字段的 DHCP 值相同。
推荐阅读
- java - 使用正则表达式从字符串中删除 0 位小数
- php - 在模态关闭时运行 PHP 脚本
- python - Python 到 Excel 使用 xlxswriter:公式失败
- c# - JHipster 微服务 Web 应用程序中的不同编程语言集成
- arrays - 如何使用 IF 语句将值与 Google 表格中的数组进行比较
- python - 如何使用 mypy 和 @property 赋值?
- svn - 如何使用 Tortoise SVN 在 Windows 上使用 SVN
- python - 使用 OPENALPR、OpenCV 和 Tesseract 的摩洛哥车牌识别 (LPR)
- excel - 我在当前工作表中有 2 个命令按钮,两个都是编码的,我需要正确的编码
- r - Data.Table 有条件地操作许多列