我试图弄清楚如何使用ONVIF获得设备当前正在使用的IP。例如,我有一个IP摄像机,可以使用WiFi或以太网将其连接到网络。对GetNetworkInterfaces
的响应如下所示(插入或拔出网络电缆也没关系):
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<s:Envelope xmlns:sc="http://www.w3.org/2003/05/soap-encoding" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema">
<s:Header/>
<s:Body>
<tds:GetNetworkInterfacesResponse>
<tds:NetworkInterfaces token="eth0">
<tt:Enabled>true</tt:Enabled>
<tt:Info>
<tt:Name>eth0</tt:Name>
<tt:HwAddress>9c:8e:cd:03:00:85</tt:HwAddress>
<tt:MTU>1500</tt:MTU>
</tt:Info>
<tt:Link>
<tt:AdminSettings>
<tt:AutoNegotiation>false</tt:AutoNegotiation>
<tt:Speed>10</tt:Speed>
<tt:Duplex>Full</tt:Duplex>
</tt:AdminSettings>
<tt:OperSettings>
<tt:AutoNegotiation>false</tt:AutoNegotiation>
<tt:Speed>10</tt:Speed>
<tt:Duplex>Full</tt:Duplex>
</tt:OperSettings>
<tt:InterfaceType>6</tt:InterfaceType>
</tt:Link>
<tt:IPv4>
<tt:Enabled>true</tt:Enabled>
<tt:Config>
<tt:Manual>
<tt:Address>192.168.1.2</tt:Address>
<tt:PrefixLength>24</tt:PrefixLength>
</tt:Manual>
<tt:DHCP>false</tt:DHCP>
</tt:Config>
</tt:IPv4>
<tt:IPv6>
<tt:Enabled>true</tt:Enabled>
<tt:Config>
<tt:AcceptRouterAdvert>false</tt:AcceptRouterAdvert>
<tt:DHCP>Off</tt:DHCP>
<tt:Manual>
<tt:Address/>
<tt:PrefixLength>0</tt:PrefixLength>
</tt:Manual>
<tt:LinkLocal>
<tt:Address>fe80::9e8e:cdff:fe03:0085</tt:Address>
<tt:PrefixLength>64</tt:PrefixLength>
</tt:LinkLocal>
<tt:FromRA>
<tt:Address>2001:250:3000:3ca0:215:f2ff:fe5d:2301</tt:Address>
<tt:PrefixLength>64</tt:PrefixLength>
</tt:FromRA>
</tt:Config>
</tt:IPv6>
</tds:NetworkInterfaces>
<tds:NetworkInterfaces token="eth2">
<tt:Enabled>true</tt:Enabled>
<tt:Info>
<tt:Name>eth2</tt:Name>
<tt:HwAddress>9c:8e:cd:06:69:85</tt:HwAddress>
<tt:MTU>1500</tt:MTU>
</tt:Info>
<tt:IPv4>
<tt:Enabled>true</tt:Enabled>
<tt:Config>
<tt:FromDHCP>
<tt:Address>192.168.1.15</tt:Address>
<tt:PrefixLength>24</tt:PrefixLength>
</tt:FromDHCP>
<tt:DHCP>true</tt:DHCP>
</tt:Config>
</tt:IPv4>
<tt:Extension>
<tt:InterfaceType>71</tt:InterfaceType>
<tt:Dot11>
<tt:SSID>XXXXXX</tt:SSID>
<tt:Mode>Extended</tt:Mode>
<tt:Alias>Web_Default</tt:Alias>
<tt:Priority>15</tt:Priority>
<tt:Security>
<tt:Mode>PSK</tt:Mode>
<tt:Algorithm>TKIP</tt:Algorithm>
</tt:Security>
</tt:Dot11>
</tt:Extension>
</tds:NetworkInterfaces>
</tds:GetNetworkInterfacesResponse>
</s:Body>
</s:Envelope>
有没有一种方法可以真正知道哪个是活动网络接口?