
- 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-08-2020 11:33 AM
The printer should be discovered with OOB public MIBs, what challenges are you seeing?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-11-2020 06:05 AM
Canon does not have any available MIBs/OIDs in ServiceNow. This is my current challenge. Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-11-2020 10:02 AM
That's just it, you 'shouldn't' need any custom MIBs to discover printers, it should happen with the already deployed public MIBs. Unless you are trying to add custom attributes, where using private mibs might be needed.
Which is your use case?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-19-2020 05:46 AM
Without a MIB the SNMP probe doesn't engage and we move on to trying to log in to the printers.