in sample_app/onvif_camera_mock/artifacts/onvif_srvd/src/ServiceContext.cpp [155:181]
std::string ServiceContext::getServerIpFromClientIp(uint32_t client_ip) const
{
char server_ip[INET_ADDRSTRLEN];
if (eth_ifs.size() == 1)
{
eth_ifs[0].get_ip(server_ip);
return server_ip;
}
for(size_t i = 0; i < eth_ifs.size(); ++i)
{
uint32_t if_ip, if_mask;
eth_ifs[i].get_ip(&if_ip);
eth_ifs[i].get_mask(&if_mask);
if( (if_ip & if_mask) == (client_ip & if_mask) )
{
eth_ifs[i].get_ip(server_ip);
return server_ip;
}
}
return "127.0.0.1"; //localhost
}