c# - 获取摄像机 IP 地址
问题描述
我正在寻找一种方法来检索通过 Net 5.0 项目中的以太网交换机连接到我的计算机的 IP 摄像机的所有 IP 地址。
我确实尝试使用针对 Net Framework 的 OzekiSDK 库来解决这个问题:
void GetIpCameras()
{
IPCameraFactory.DeviceDiscovered += IPCameraFactory_DeviceDiscovered;
IPCameraFactory.DiscoverDevices();
}
private void IPCameraFactory_DeviceDiscovered(object sender, DiscoveryEventArgs e)
{
GuiThread(() => DiscoveredDeviceList.Items.Add("Host: " + e.Device.Host + " Port: " + e.Device.Port));
}
private void SearchButton_Click(object sender, RoutedEventArgs e)
{
DiscoveredDeviceList.Items.Clear();
IPCameraFactory.DeviceDiscovered -= IPCameraFactory_DeviceDiscovered;
GetIpCameras();
}
结果:主机:192.168.0.148 端口:80
上面的方法工作得很好,但前提是我的项目是针对 Net FrameWork,目前我正在构建一个针对 Net 5.0 的项目,其中包含许多只针对 Net 的库,所以如果我尝试使用这个库,它将返回一个异常:
System.TypeInitializationException: 'Ozeki.Camera.IPCameraFactory' 的类型初始化程序引发了异常。FileNotFoundException:无法加载文件或程序集“System.ServiceModel.Discovery,版本=4.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”。该系统找不到指定的文件。
在那之后,我认为将这段代码放在一个新的 net Framework 项目中,然后将其用作我当前的 Net 5.0 项目的参考是个好主意,结果还是一样。我希望为此找到解决方案。
解决方案
推荐阅读
- powershell - 如何在同一目录的 BAT 文件中运行 powershell
- python - 使用pyinstaller后关闭cmd窗口
- java - java 8 和 java 10 以上的有界类型参数
- angular - 如何使用 Angular 8 应用程序设置wiremock?
- c# - 在索引中获得-1?
- javascript - 根据从下拉列表中选择的选项渲染模板
- emacs - 在终端模式下如何在组织模式下隐藏前导星
- php - 如何将 ExpressionEngine 版本 3 升级到 4
- c# - Linq to SQL 比 Linq to Entity 快 3 倍
- hashicorp-vault - Hashicorp Vault - 读取失败:解密失败:密码:消息身份验证失败