DHCP 网络配置

要配置 DHCP,请将相机设置为 DHCP 模式,然后在 PC 上运行 DHCP 服务器(除非网络中已经运行了一个)。

小心

网络配置的正确说明取决于您的 SDK 版本。请在左上角的下拉菜单中选择您的 SDK 版本。

相机

要将相机设置为 DHCP 模式,请使用 Zivid Studio、CLI Tool 或 API。

Zivid Studio

打开 Zivid Studio,然后点击 Cameras → All Cameras 打开相机菜单。

../../../../_images/studio-cameras-menu.png

在要配置的相机上点击 Configure。

../../../../_images/studio-cameras-configure-dhcp.png

选择自动(DHCP)配置模式。点击 Apply 将配置应用到相机。

../../../../_images/studio-cameras-configure-dhcp-applying.png
CLI Tool

使用 CLI 工具 ZividNetworkCameraConfigurator,您可以一次更改一台相机的网络配置。该工具在 Windows 上随 Zivid SDK 一起安装,在 Ubuntu 上则随 Zivid Tools 软件包一起安装。

  1. 打开终端/命令提示符。

  2. 连接相机。

  3. 运行以下命令以确认能够找到您的相机:

    Windows
    ZividListCameras.exe
    
    Ubuntu
    ZividListCameras
    
  4. 通过以下方式将当前 IP 为 <host> 的相机设置为 DHCP 模式:

    Windows
    ZividNetworkCameraConfigurator.exe set-config <host> --dhcp
    

    例如,将 IP 为 172.28.60.5 的相机的模式从静态改为 DHCP:

    ZividNetworkCameraConfigurator.exe set-config 172.28.60.5 --dhcp
    
    Ubuntu
    ZividNetworkCameraConfigurator set-config <host> --dhcp
    

    例如,将 IP 为 172.28.60.5 的相机的模式从静态改为 DHCP:

    ZividNetworkCameraConfigurator set-config 172.28.60.5 --dhcp
    

    您也可以使用可选参数 [--hostname <hostname>] 设置主机名。所有基于以太网的 Zivid 相机都带有一个预定义的主机名,格式为 zivid-serialnumber,例如 zivid-2234AB12。

  5. 如果要配置多台相机的 IP 地址,请对每台相机重复步骤 2(连接相机)到步骤 4(设置 DHCP 模式)。

    如果您使用 Cameras.yml

    使用动态 IP 时,强烈建议使用主机名。否则,您必须在 Cameras.yml 中列出所有可能的 IP 地址,或者查找分配给相机的 IP 地址并列出它们。使用主机名时,您只需列出预期的主机名,即使 IP 地址被重新分配也没有影响。默认主机名的格式为:zivid-<serialnumber>,例如 zivid-2234AB12。

    有关 Cameras.yml 的更多信息,请参阅 Restrict Discoverable Cameras with Cameras.yml。

  6. 在连接相机之前,请确保网络上有一个正在运行的 DHCP 服务器。请参阅下方的 PC 部分以自行搭建。

API

SDK 提供了用于配置相机网络配置的函数。

  1. 连接到您的相机。

    转到源码

    源码

    auto camera = zivid.connectCamera();
    
    转到源码

    源码

    var camera = zivid.ConnectCamera();
    
    转到源码

    源码

    camera = app.connect_camera()
    
  2. 将模式设置为 DHCP。

    转到源码

    源码

    mode = Zivid::NetworkConfiguration::IPV4::Mode::dhcp;
    
    转到源码

    源码

    mode = Zivid.NET.NetworkConfiguration.IPV4Group.ModeOption.Dhcp;
    
    转到源码

    源码

    mode = zivid.NetworkConfiguration.IPV4.Mode.dhcp
    
  3. 创建一个网络配置对象。

    转到源码

    源码

    Zivid::NetworkConfiguration newConfig(Zivid::NetworkConfiguration::IPV4(mode, address, subnetMask));
    
    转到源码

    源码

    var newConfig = new Zivid.NET.NetworkConfiguration()
    {
        IPV4 = {
            Mode = mode,
            Address = address,
            SubnetMask = subnetMask,
        }
    };
    
    转到源码

    源码

    new_config = zivid.NetworkConfiguration(
        ipv4=zivid.NetworkConfiguration.IPV4(
            mode=mode,
            address=address,
            subnet_mask=subnet_mask,
        )
    )
    
  4. 将新的网络配置应用到相机。

    转到源码

    源码

    camera.applyNetworkConfiguration(newConfig);
    
    转到源码

    源码

    camera.ApplyNetworkConfiguration(newConfig);
    
    转到源码

    源码

    camera.apply_network_configuration(new_config)
    

PC

本节将指导您如何在 PC 上搭建 DHCP 服务器。如果网络中已经有 DHCP 服务器在运行(例如在路由器上),您可以跳过此步骤,直接连接相机。

警告

在配置此模式之前,请确保您熟悉 DHCP。使用 DHCP 很容易出问题,例如在同一网络中运行多个地址范围重叠的 DHCP 服务器。

  1. 安装 DHCP 服务器。如果网络中已经有 DHCP 服务器在运行,可以跳过此步骤。

    Windows
    Ubuntu

    我们希望使用来自 ISC 的最新 DHCP 服务器 Kea,并将使用 their automatic setup script。该设置脚本的 URL 固定指向 kea-3-2 发行版仓库;如果此版本不可用,请查看 Kea's repository list 以获取更新的版本。

    curl -1sLf 'https://dl.cloudsmith.io/public/isc/kea-3-2/setup.deb.sh' | sudo -E bash
    

    现在仓库已准备就绪,我们可以安装 DHCPv4 服务器了。

    sudo apt -y install isc-kea-dhcp4-server
    
  2. 配置 DHCP 服务器。这里的示例基于上一步中提到的 DHCP 服务器实现。这些概念应该同样适用于其他 DHCP 服务器。您可以为已连接的相机 List IP addresses (列出 IP 地址),或 List hostnames (列出主机名)。

    选项:列出 IP 地址
    Windows

    在 dhcpsrv.ini 文件中配置相关设置

    [Settings]
    IPBIND_1=172.28.60.2
    IPPOOL_1=172.28.60.3-172.28.60.10
    AssociateBindsToPools=1
    [General]
    SUBNETMASK=255.255.255.0
    
    Ubuntu

    查找接口名称:

    ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
    8: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 48:65:ee:1c:12:ba brd ff:ff:ff:ff:ff:ff
        inet 172.21.96.50/24 brd 172.28.60.255 scope global noprefixroute eth0
        valid_lft forever preferred_lft forever
        inet6 fe80::4a65:eeff:fe1c:12ba/64 scope link
        valid_lft forever preferred_lft forever
    

    接下来我们将使用最基本的默认配置。用以下内容替换默认文件 /etc/kea/kea-dhcp4.conf。如果想保留原文件作为本地参考,请先创建备份。

    sudo nano /etc/kea/kea-dhcp4.conf
    

    添加以下内容:

    {
       "Dhcp4": {
          "interfaces-config": {
                "interfaces": [ "eth0" ],
                "dhcp-socket-type": "raw"
          },
          "valid-lifetime": 4000,
          "renew-timer": 1000,
          "rebind-timer": 2000,
          "subnet4": [{
             "pools": [ { "pool": "172.28.60.3-172.28.60.10" } ],
             "subnet": "172.28.60.0/24"
          }],
          "loggers": [{
                "name": "*",
                "severity": "WARNING"
          }]
       }
    }
    
    选项:列出主机名
    Windows

    在 dhcpsrv.ini 文件中配置相关设置

    [Settings]
    IPBIND_1=172.28.60.2
    [DNS-Settings]
    EnableDNS=1
    [General]
    SUBNETMASK=255.255.255.0
    DNS_1=$(IPBIND_1)
    
    Ubuntu

    查找接口名称:

    ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
    8: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 48:65:ee:1c:12:ba brd ff:ff:ff:ff:ff:ff
        inet 172.21.96.50/24 brd 172.28.60.255 scope global noprefixroute eth0
        valid_lft forever preferred_lft forever
        inet6 fe80::4a65:eeff:fe1c:12ba/64 scope link
        valid_lft forever preferred_lft forever
    

    接下来我们将使用最基本的默认配置。用以下内容替换默认文件 /etc/kea/kea-dhcp4.conf。如果想保留原文件作为本地参考,请先创建备份。

    sudo nano /etc/kea/kea-dhcp4.conf
    

    添加以下内容:

    {
       "Dhcp4": {
          "interfaces-config": {
                "interfaces": [ "eth0" ],
                "dhcp-socket-type": "raw"
          },
          "valid-lifetime": 4000,
          "renew-timer": 1000,
          "rebind-timer": 2000,
          "subnet4": [{
             "pools": [ { "pool": "172.28.60.3-172.28.60.10" } ],
             "subnet": "172.28.60.0/24"
          }],
          "loggers": [{
                "name": "*",
                "severity": "WARNING"
          }]
       }
    }
    

    从 SDK 2.7 开始,不再需要启用 NetBIOS Naming Service。较早版本的 SDK 需要执行额外步骤以启用 NetBIOS Naming Service。请在左上角切换知识库版本以查看相应说明。

    如果您使用 Cameras.yml,请根据 DHCP 配置对其进行更新,下方展示了 IP 地址和主机名两种示例。有关 Cameras.yml 的更多信息,请参阅 Restrict Discoverable Cameras with Cameras.yml。

    选项:列出 IP 地址
    __version__: 1
    Cameras:
       NetworkCameras:
             - NetworkCamera:
                Host: 172.28.60.3
             - NetworkCamera:
                Host: 172.28.60.4
             - NetworkCamera:
                Host: 172.28.60.5
             - NetworkCamera:
                Host: 172.28.60.6
             - NetworkCamera:
                Host: 172.28.60.7
             - NetworkCamera:
                Host: 172.28.60.8
             - NetworkCamera:
                Host: 172.28.60.9
             - NetworkCamera:
                Host: 172.28.60.10
    
    选项:列出主机名
    __version__: 1
    Cameras:
       NetworkCameras:
             - NetworkCamera:
                Host: zivid-2022C0DE.local
             - NetworkCamera:
                Host: zivid-two.local
             - NetworkCamera:
                Host: zivid-two-alt-1.local
             - NetworkCamera:
                Host: zivid-two-alt-2.local
    
  3. (重新)启动 DHCP 服务器。

    Windows

    导航到解压可执行文件的文件夹,然后双击 dhcpsrv.exe,或者打开命令提示符并

    dhcpsrv.exe -runapp
    

    您可以通过检查系统托盘来验证 DHCP 服务器是否正在运行:

    显示 DHCP 正在 Windows 上运行的屏幕截图
    Ubuntu
    sudo systemctl restart isc-kea-dhcp4-server
    

Next Steps

现在您已经将相机配置为 DHCP 模式,并在 PC 上启动了 DHCP 服务器。请转到 连接到相机。