gpt4 book ai didi

c# - 在 SharpPCap 中如何找到设备的 IP 地址?

转载 作者:行者123 更新时间:2023-11-30 15:41:49 27 4
gpt4 key购买 nike

我正在使用 WinPCapDevice 并且已经对其进行了初始化。我只想能够从该设备获取 IP,但我无法在任何地方找到如何提取设备的 IP 地址。如果没有办法做到这一点,那么是否有另一种方法来获取 WinPCapDevice 的 IP 地址,以便我可以根据 IP 地址列表检查它?

这是我正在谈论的一小段代码。

        IPHostEntry host;
host = Dns.GetHostEntry(Dns.GetHostName());

foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily.ToString() == "InterNetwork")
{

localIPAddress = ip.ToString();
//Want to check if my WinPCapDevice device's IP is equal to ip
}
}

最佳答案

WinPcapDevice 类包含一个名为Addresses 的属性。此属性包含与设备关联的所有地址 (IP):

string localIPAddress = "...";

WinPcapDeviceList devices = WinPcapDeviceList.Instance;

foreach(WinPcapDevice dev in devices)
{
Console.Out.WriteLine("{0}", dev.Description);

foreach(PcapAddress addr in dev.Addresses)
{
if(addr.Addr != null && addr.Addr.ipAddress != null)
{
Console.Out.WriteLine(addr.Addr.ipAddress);

if(localIPAddress == addr.Addr.ipAddress.ToString())
{
Console.Out.WriteLine("Capture device found");
}
}
}
}

当然,您也可以使用CaptureDeviceList 类来获取特定设备的列表。此列表中的每个设备都实现了 ICaptureDevice。然后,您必须转换为 WinPcapDeviceLibPcapLiveDeviceAirPcapDevice 才能访问 Address 属性。

希望这对您有所帮助。

关于c# - 在 SharpPCap 中如何找到设备的 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7996596/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com