Как правило, первое, что делается в SharpPcap-приложении, это получение списка установленных сетевых адаптеров. Для этого SharpPcap предоставляет класс, CaptureDeviceList.Класс состоит из одного экземпляра, который держит в кэше список сетевых адаптеров типа ICaptureDevice.
Следующий пример показывает, как получить список адаптеров и отобразить их, либо вывести ошибку, если адаптеры отсутствуют:
// Выводим версию SharpPcap
string ver = SharpPcap.Version.VersionString;
Console.WriteLine("SharpPcap {0}, Example1.IfList.cs", ver);
// Получаем список устройств
CaptureDeviceList devices = CaptureDeviceList.Instance;
//Если нет устройств выводим ошибку
if(devices.Count < 1)
{
Console.WriteLine("Нет сетевых устройств на компьютере");
return;
}
Console.WriteLine("\nДоступны следующие сетевые устройства:");
Console.WriteLine("----------------------------------------------------\n");
//Печатаем все доступные устройства
foreach(ICaptureDevice dev in devices)
Console.WriteLine("{0}\n", dev.ToString());
Console.Write("Нажмите Enter для выхода...");
Console.ReadLine(); В результате увидим примерно следующее:
c:\sharppcap\Examples\Example1.IfList\bin\Debug>Example1.IfList.exe
SharpPcap 3.5.0.0, Example1.IfList.cs
The following devices are available on this machine:
----------------------------------------------------
interface: Name: \Device\NPF_{D8B7C9B2-D53D-45DA-ACF0-2E2116F97314}
FriendlyName: Local Area Connection 2
Description: Intel(R) PRO/1000 MT Desktop Adapter
Addresses:
Addr: fe80::b444:92d8:c882:8227
Netmask:
Broadaddr:
Addresses:
Addr: 10.0.2.15
Netmask: 255.255.255.0
Broadaddr: 255.255.255.255
Addresses:
Addr: HW addr: 0800276AC792
Flags: 0
Hit 'Enter' to exit...