. * * @link https://www.librenms.org * * @copyright 2016 Neil Lathwood * @author Neil Lathwood * @copyright 2020 Tony Murray * @author Tony Murray */ namespace LibreNMS\OS; use App\Models\Device; use LibreNMS\Interfaces\Discovery\OSDiscovery; use LibreNMS\OS; class ArrisC4 extends OS implements OSDiscovery { public function discoverOS(Device $device): void { $device = $this->getDevice(); preg_match("/CMTS_V([\d.]+),/", $device->sysDescr, $match); $device->version = $match[1]; $data = explode('.', $device->sysObjectID); $id = end($data); if ($id == '1') { $device->hardware = 'C4'; } elseif ($id == '2') { $device->hardware = 'C4c'; } } }