在C#中查找接口索引
如何在C#中获取连接的interace索引?
如果索引不是标准术语,我的意思是与接口关联的数字,例如当您使用命令“netsh int ipv4 show int”按左侧的索引列出您的连接时。 它也用于“路由添加[网关]掩码[索引]如果[接口索引]”。
我知道接口的名称和描述,所以使用NetworkInterface.GetAllNetworkInterfaces()然后在那里找到合适的接口是相当直接的。 从那里,我找不到索引。 我认为ID可能是相同的,但它具有“{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}”forms的值,而不是小整数值。
我想你想要的
myInterface.GetIPProperties().GetIPv4Properties().Index;
如在
var interfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach(var @interface in interfaces) { var ipv4Properties = @interface.GetIPProperties().GetIPv4Properties(); if (ipv4Properties != null) Console.WriteLine(ipv4Properties.Index); }
请注意,如果没有可用于该接口的IPv4信息,则GetIPv4Properties()
可以返回null
。
这个msdn页面显示了一个可能有用的示例。
所有网络接口都有一个GUID,它唯一地将它们分开,并用于Win环境中的个人操作,即ID。
idx不是直接分配给NIC,而是由Windows管理系统用作设置详细信息的用户友好方式。
这里有一段代码,显示了如何访问可能包含信息的ManagementObjectSearcher,您必须解析结果(而不是只选择下面的名称)
internal static IEnumerable GetConnectedCardNames() { string query = String.Format(@"SELECT * FROM Win32_NetworkAdapter"); var searcher = new ManagementObjectSearcher { Query = new ObjectQuery(query) }; try { log.Debug("Trying to select network adapters"); var adapterObjects = searcher.Get(); var names = (from ManagementObject o in adapterObjects select o["Name"]) .Cast (); return names; } catch (Exception ex) { log.Debug("Failed to get needed names, see Exception log for details"); log.Fatal(ex); throw; } }
你在谈论网络适配器绑定顺序吗? 如果是这样,通常存储在此注册表项中:
HKEY_LOCAL_MACHINE 系统 CurrentControlSet 服务 TCPIP 联动
上述就是C#学习教程:在C#中查找接口索引分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/952003.html