
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-08-2020 10:59 AM
Anyone have experience with Canon Printers and Network Discovery? I know that I need to load MIBs/OIDs into SNMP but can't locate a list for Canon. Any thoughts?
Solved! Go to Solution.
- Labels:
-
Discovery
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-19-2020 12:26 PM
Rich, lets talk through the discovery process.
When we kick off the shazzam (portscan) probe against your canon printer we send a sysDescr query that is our SNMP "port" check that is from MIB-2, a public mib that every device should answer. If it does not respond to that query then you have an SNMP problem on the device. NO private MIBs involved here.
IF it responds we then go into SNMP classify where more public mibs are used specifically the print-mib that we can gain insight if the IP has printing capabilities. As we can see in the SNMP Classify sensor....
// is this thing a printer?
var isPrinter = false;
var isHrDevicePrinter = false;
var hasPrtGeneralSerialNumber = false;
// first look in the Host Resources MIB...
var devices = snmp.getOIDTable(oid_mib2 + 'host.hrDevice', 'hrDeviceEntry');
var hrDeviceDescrs = []; //used in short_description
for (var index in devices) {
var deviceType = devices[index]['hrDeviceType'];
isHrDevicePrinter = isHrDevicePrinter || (deviceType.substr(-2) == '.5'); //1.3.6.1.2.1.25.3.1.5 is 'hrDevicePrinter'
if ('hrDeviceDescr' in devices[index]) {
var hrDeviceDescr = devices[index]['hrDeviceDescr'];
if (hrDeviceDescrs.indexOf(hrDeviceDescr) > -1)
continue;
hrDeviceDescrs.push(hrDeviceDescr);
}
}
// then look in the Printer MIB...
var prtGens = snmp.getOIDTable(oid_mib2 + 'printmib.prtGeneral', 'prtGeneralEntry');
for (var index in prtGens) {
var prtSerial = prtGens[index]['prtGeneralSerialNumber'];
hasPrtGeneralSerialNumber = hasPrtGeneralSerialNumber || JSUtil.notNil(prtSerial);
}
// if both conditions are true we assume the device has printing capability
isPrinter = isHrDevicePrinter && hasPrtGeneralSerialNumber;
capabilities['printing'] = '' + isPrinter;
This information along with the SNMP sysOID table will set your classification process. If you don't get a response here then you have a problem with SNMP on the target. NO private MIBs here, all public MIBs that we have pre-loaded for you.
The only time you would need to load private Canon specific MIBs is if you are extending discovery to get something unique from the Canon device that only their MIBs would contain..Everything else should be OOB...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-19-2020 12:26 PM
Rich, lets talk through the discovery process.
When we kick off the shazzam (portscan) probe against your canon printer we send a sysDescr query that is our SNMP "port" check that is from MIB-2, a public mib that every device should answer. If it does not respond to that query then you have an SNMP problem on the device. NO private MIBs involved here.
IF it responds we then go into SNMP classify where more public mibs are used specifically the print-mib that we can gain insight if the IP has printing capabilities. As we can see in the SNMP Classify sensor....
// is this thing a printer?
var isPrinter = false;
var isHrDevicePrinter = false;
var hasPrtGeneralSerialNumber = false;
// first look in the Host Resources MIB...
var devices = snmp.getOIDTable(oid_mib2 + 'host.hrDevice', 'hrDeviceEntry');
var hrDeviceDescrs = []; //used in short_description
for (var index in devices) {
var deviceType = devices[index]['hrDeviceType'];
isHrDevicePrinter = isHrDevicePrinter || (deviceType.substr(-2) == '.5'); //1.3.6.1.2.1.25.3.1.5 is 'hrDevicePrinter'
if ('hrDeviceDescr' in devices[index]) {
var hrDeviceDescr = devices[index]['hrDeviceDescr'];
if (hrDeviceDescrs.indexOf(hrDeviceDescr) > -1)
continue;
hrDeviceDescrs.push(hrDeviceDescr);
}
}
// then look in the Printer MIB...
var prtGens = snmp.getOIDTable(oid_mib2 + 'printmib.prtGeneral', 'prtGeneralEntry');
for (var index in prtGens) {
var prtSerial = prtGens[index]['prtGeneralSerialNumber'];
hasPrtGeneralSerialNumber = hasPrtGeneralSerialNumber || JSUtil.notNil(prtSerial);
}
// if both conditions are true we assume the device has printing capability
isPrinter = isHrDevicePrinter && hasPrtGeneralSerialNumber;
capabilities['printing'] = '' + isPrinter;
This information along with the SNMP sysOID table will set your classification process. If you don't get a response here then you have a problem with SNMP on the target. NO private MIBs here, all public MIBs that we have pre-loaded for you.
The only time you would need to load private Canon specific MIBs is if you are extending discovery to get something unique from the Canon device that only their MIBs would contain..Everything else should be OOB...

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-20-2020 07:11 AM
Ahh I see said the blind man! Thanks so much for the thoughtful response and taking the time to explain. It really is appreciated!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-17-2022 12:32 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-17-2022 04:44 PM
I would start here..
https://www.google.com/search?q=canon+printer+customer+service
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-17-2022 06:41 PM
Netaphor has a connector that uses the ServiceNow API and brings 100% of your printers into the CMDB and allows you to automate printer ticketing as it extends the printer CI in the ServiceNow CMDB. It also provides deeper level of data on printer security vulnerabilities that you cannot get from other applications (ie. firmware level, open ports, SNMP stuff, etc.) We're finding that the standard SN discovery only discovers about 40% of the printers. https://www.linkedin.com/in/robertwrussell/