You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SharpPCap中获取网络设备的友好名称

解决SharpPCap获取网络设备友好名称的问题

直接将ICaptureDevice强制转换为PCapInterface会失败,因为CaptureDeviceList返回的是对应平台的具体设备实现类(比如Windows下的WinPcapDevice、Linux下的LibPcapDevice),而非PCapInterface本身。根据SharpPCap版本不同,获取友好名称的方式分两种:

方法一:适用于SharpPCap v6及以上版本

新版本中,各平台设备类都实现了IPcapInterface接口,该接口包含FriendlyName属性,可通过类型判断安全转换:

CaptureDeviceList deviceList = CaptureDeviceList.Instance;
foreach (var device in deviceList)
{
    if (device is IPcapInterface pcapInterface)
    {
        Console.WriteLine($"设备名: {device.Name}, 描述: {device.Description}, 友好名称: {pcapInterface.FriendlyName}");
    }
    else
    {
        Console.WriteLine($"设备名: {device.Name}, 描述: {device.Description}");
    }
}

方法二:适用于SharpPCap v5及以下旧版本

旧版本中,Windows平台的设备类WinPcapDevice直接自带FriendlyName属性,需针对性判断类型:

CaptureDeviceList deviceList = CaptureDeviceList.Instance;
foreach (ICaptureDevice device in deviceList)
{
    if (device is WinPcapDevice winDevice)
    {
        Console.WriteLine($"设备名: {device.Name}, 描述: {device.Description}, 友好名称: {winDevice.FriendlyName}");
    }
    else
    {
        Console.WriteLine($"设备名: {device.Name}, 描述: {device.Description}");
    }
}

内容的提问来源于stack exchange,提问作者shinyball4999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:29:50