从零开始精通Onvif之网络配置

166 阅读2分钟

概述

网络配置是Onvif规范中的重要组成部分,允许用户通过网络远程配置和管理设备的网络设置,比如:DHCP、IP地址、子网掩码、默认网关、DNS等。Onvif网络配置主要通过Device Service中的GetNetworkInterfaces和SetNetworkInterfaces两个方法来实现。GetNetworkInterfaces用于获取设备所有网络接口的信息,而SetNetworkInterfaces则允许客户端修改指定网络接口的配置。这两个方法的调用均基于SOAP协议,通过HTTP或HTTPS进行传输。

获取网络配置

在Onvif协议中,获取网络配置使用GetNetworkInterfaces方法,它用于获取网络摄像机或其他网络视频设备的所有网络接口的配置信息。这项功能对于网络管理尤为重要,因为它允许管理员远程检查和了解设备当前的网络设置状况,包括:IP地址、子网掩码、网关、DNS信息,以及是否启用DHCP等。

获取网络配置的请求比较简单,可以参考下面的SOAP报文。

<soapenv:Envelope 
    xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:onv="http://www.onvif.org/ver10/device/wsdl">
   <soapenv:Header>
      <!-- 安全认证信息 -->
   </soapenv:Header>
   <soapenv:Body>
      <onv:GetNetworkInterfaces />
   </soapenv:Body>
</soapenv:Envelope>

设备接收到请求命令后,会返回给客户端SOAP响应。SOAP响应与修改网络配置的请求基本类似,因此我们在下面统一进行介绍。

修改网络配置

在Onvif协议中,修改网络配置使用SetNetworkInterfaces方法,允许客户端通过网络远程修改网络视频设备的网络接口配置。这些配置包括:静态IP地址、子网掩码、默认网关、启用或禁用DHCP等。

客户端构造好修改网络配置的请求后,将其通过HTTP POST方法发送至设备的Onvif服务,服务地址通常为http(s)://[设备IP]/onvif/device_service。SetNetworkInterfaces方法可以参考下面的示例报文来进行理解,其中的一些关键节点和属性描述如下。

onv:InterfaceToken:用于指定要修改的网络接口。

onv:Enabled:指定网络接口是否启用。

onv:IPv4:包含IPv4配置信息,包括IP地址、子网掩码、默认网关和DHCP状态。

onv:DHCP:设置为false,表示使用静态IP配置;设置为true,则启用DHCP。

<soapenv:Envelope 
    xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:onv="http://www.onvif.org/ver10/device/wsdl">
   <soapenv:Header>
         <!-- 这里应包含认证信息 -->
      </wsse:Security>
   </soapenv:Header>
   <soapenv:Body>
      <onv:SetNetworkInterfaces>
         <!-- 网络接口标识 -->
         <onv:InterfaceToken>InterfaceTokenHere</onv:InterfaceToken>
         <onv:NetworkInterface>
            <!-- 是否启用此接口 -->
            <onv:Enabled>true</onv:Enabled>
            <!-- 静态IPv4配置 -->
            <onv:IPv4>
               <onv:Address>192.168.1.100</onv:Address>
               <onv:SubnetMask>255.255.255.0</onv:SubnetMask>
               <onv:DefaultGateway>192.168.1.1</onv:DefaultGateway>
               <!-- 禁用DHCP -->
               <onv:DHCP>false</onv:DHCP>
            </onv:IPv4>
            <!-- 可以根据需要添加其他配置项,如DNS -->
         </onv:NetworkInterface>
      </onv:SetNetworkInterfaces>
   </soapenv:Body>
</soapenv:Envelope>

💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。