1<?php 2 3/** 4 * Observium 5 * 6 * This file is part of Observium. 7 * 8 * @package observium 9 * @subpackage poller 10 * @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2019 Observium Limited 11 * 12 */ 13 14// Printers hardware 15$printer = snmp_get($device, 'hrDeviceDescr.1', '-OQv', 'HOST-RESOURCES-MIB'); 16 17if ($printer) 18{ 19 list($hardware) = explode(';', $printer); 20} else { 21 if ($device['os'] == 'jetdirect') 22 { 23 // ...7.0 = STRING: "MFG:Hewlett-Packard;CMD:PJL,MLC,BIDI-ECP,PCL,POSTSCRIPT,PCLXL;MDL:hp LaserJet 1320 series;CLS:PRINTER;DES:Hewlett-Packard LaserJet 1320 series;MEM:9MB;COMMENT:RES=1200x1;" 24 // "MFG:HP;MDL:Officejet Pro K5400;CMD:MLC,PCL,PML,DW-PCL,DESKJET,DYN;1284.4DL:4d,4e,1;CLS:PRINTER;DES:C8185A;SN:MY82E680JG;S:038000ec840010210068eb800008fb8000041c8003844c8004445c8004d46c8003b;Z:0102,05000009000009029cc1016a81017a21025e41,0600,070000000000000" 25 $jdinfo = snmp_get($device, '1.3.6.1.4.1.11.2.3.9.1.1.7.0', '-OQv'); 26 preg_match('/(?:MDL|MODEL|DESCRIPTION):([^;]+);/', $jdinfo, $matches); 27 $hardware = $matches[1]; 28 } 29} 30 31// OS version 32if (preg_match('/^(?:Samsung )+(?<hardware>[CMKSX][\w\-]+)[^;]*;(?: V|OS )(?<version>[\d\.]+).+?;S/N (?<serial>\w+)/', $poll_device['sysDescr'], $matches)) 33{ 34 //Samsung X7600GX; V11.01.05.15_06-24-2015;Engine V1.00.77 06-21-2015;NIC ;S/N 082MB1EG400002T 35 //Samsung SL-M4075FR; V4.00.01.12 Jul-26-2013;Engine V1.00.00;NIC V4.01.13 JUL-26-2013;S/N 070ABJFDA0009XR 36 //Samsung SCX-8821; V11.12.03.07_01-23-2015;Engine V1.00.66 11-26-2014L;NIC ;S/N ZDW5B1DG300002P 37 //Samsung SCX-483x 5x3x Series; V2.00.01.061 NOV-28-2011;Engine 1.00.23;NIC V4.01.07 05-12-2011;S/N Z5RUBAKB600003J 38 //Samsung Samsung SCX-472x Series; V3.00.01.18 NOV-07-2012;Engine V0.04.04 10-30-2012;NIC V6.01.00(SCX-472x Series);S/N Z9MRBJDD300038Y 39 //Samsung Samsung ML-2950 Series; V3.00.01.07 AUG-12-2011;Engine V1.01.04 07-01-2011;NIC V6.01.00(ML-2950 Series);S/N Z7K4BKBBC00039R 40 //Samsung Samsung M267x 287x Series; V3.00.01.27 OCT-01-2014;Engine V1.00.10 06-10-2014;NIC V6.01.00;S/N ZD0VBJCFA000HKY 41 //Samsung Samsung K2200 Series; V3.07.01.24 MAY-16-2014;Engine V1.00.19 05-15-2014;NIC V6.01.00;S/N ZD9DB1DF8000F5Z 42 //Samsung Samsung CLX-3300 Series; V3.00.02.07 APR-10-2014;Engine V1.00.17 2014-04-10;NIC V6.01.00;S/N Z8BUB8GF4E007RH 43 //Samsung Samsung CLP-360 Series; V3.00.01.06 May-16-2012;Engine V1.00.04 2012-05-14;NIC V6.01.00(CLP-360 Series);S/N Z757BJBC60008KP 44 //Samsung Samsung C48x Series; V3.00.01.07 JUL-24-2015;Engine V1.00.01 2015-04-27;NIC V6.01.01;S/N 08H7B8GG7E0022M 45 //Samsung Samsung C410 Series; V3.00.02.07 APR-10-2014;Engine V1.00.17 2014-04-10;NIC V6.01.01;S/N ZEVQB8GF6E00WLW 46 //Samsung ML-8x00;OS 1.60 Jul 08 2009;Engine 1.00:20;NIC V2.03.06(ML-8x00) 11-18-2009;S/N BE58BPAB500027.. 47 //Samsung ML-8850 8950 Series; V2.02.01.07 Jun-10-2011;Engine ;NIC V4.01.02 09-28-2010;S/N Z5SNB8AG400034D 48 //Samsung M5370LX; V11.01.06.03_07-16-2014;Engine V1.00.05_07-03-2014;NIC ;S/N 07A2BJFF70000TX 49 //Samsung K4350LX; V11.01.08.12_07-09-2015;Engine V2.00.12 07-08-2015_v1.53;NIC ;S/N 28R0B1AG80001EM 50 //Samsung CLX-9821; V11.12.03.06_01-23-2015;Engine V1.00.64 11-27-2014L;NIC ;S/N ZDVXB1CF500001Y 51 //Samsung CLP-680 Series; V4.00.01.41 Feb-15-2013;Engine V1.00.20;NIC V4.01.11 02-17-2013;S/N Z7FQBJED500078B 52 //Samsung ML-2850 Series OS 1.03.00.16 01-22-2008;Engine 1.01.06;NIC V4.01.02(ML-285x) 09-13-2007;S/N 4F66BKEQ410592R 53 if (!$hardware) 54 { 55 $hardware = $matches['hardware']; 56 } 57 if (!$serial) 58 { 59 $serial = $matches['serial']; 60 } 61 62 $version = $matches['version']; 63} 64else if ($device['os'] == 'okilan') 65{ 66 //OKI OkiLAN 8100e Rev.02.73 10/100BASE Ethernet PrintServer: Attached to C3200n Rev.N2.14 : (C)2004 Oki Data Corporation 67 //OKI OkiLAN 6600g Rev.1.0 10/100BASE Ethernet PrintServer: Attached to C930 Rev.1.0 : Copyright (c) 2006 Oki Data Corporation. All rights reserved. 68 //OKI OkiLAN B63e Rev.1.0.34 10/100BASE EthernetPrintServer Attached to B6300 Rev.3.4.8 69 //OkiLAN 6130 70 if (preg_match('/OkiLAN (?<hardware>\w+) Rev\.N*(?<version>[\d]+\.[\d\.]+)/', $poll_device['sysDescr'], $matches)) 71 { 72 if (!$hardware) 73 { 74 $hardware = $matches['hardware']; 75 } 76 77 $version = $matches['version']; 78 } 79} 80 81if ($hardware) 82{ 83 // Strip off useless brand fields 84 $hardware = str_ireplace(array('HP ', 'Hewlett-Packard ', ' Series', 'Samsung ', 'Epson ', 'Brother ', 'OKI '), '', $hardware); 85 $hardware = ucfirst($hardware); 86} 87 88// EOF 89