Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在SharpPCap中,如何查找设备的IP地址?_C#_Sharppcap - Fatal编程技术网

C# 在SharpPCap中,如何查找设备的IP地址?

C# 在SharpPCap中,如何查找设备的IP地址?,c#,sharppcap,C#,Sharppcap,我正在使用WinPCapDevice,并且已经对其进行了初始化。我只想从那个设备上获取IP,但我找不到任何地方如何提取设备的IP地址。如果没有办法,那么是否有其他方法获取WinPCapDevice的IP地址,以便我可以对照IP地址列表进行检查 下面是我正在谈论的一小段代码 IPHostEntry host; host = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress ip in h

我正在使用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
。然后必须强制转换到
WinPcapDevice
LibPcapLiveDevice
AirPcapDevice
才能访问Address属性


希望,这会有帮助。

谢谢!这正是我的问题所在,我注意到了开发地址,但我不知道如何在我的生活中使用它们。再次感谢你!由于某些原因,我无法获取成员dev.address。有什么想法吗?@LuisDUrraca:你说的“得不到”是什么意思?地址集合是空的吗?事实上,我做错了。我试图在LibPcapdevice中查找地址,而不是在LibPcabdevice[I].PcapAddress[I].Addr.ipAddress中查找。现在一切都好了。谢谢你的回答很有帮助。问题是我得到了一个奇怪的IP地址列表,但这肯定是另一个问题。