The Network UPS Tools (NUT) nutscan library provides the same discovery related features that are also offered by nut-scanner(8).
It enables the discovery of supported NUT devices (USB, SNMP, Eaton XML/HTTP and IPMI) and NUT servers (either using Avahi, or the classic connection method).
First, include the required header file:
Then, to discover new devices, use the appropriate function:
- nutscan_scan_usb(3) for supported USB devices,
- nutscan_scan_snmp(3) for supported SNMP agents,
- nutscan_scan_xml_http_range(3) for Eaton Network Management Card,
- nutscan_scan_nut(3) for NUT servers (upsd), using the classic method (search for port),
- nutscan_scan_avahi(3) for NUT servers (upsd), using the mDNS (Avahi) method,
- nutscan_scan_ipmi(3) for supported IPMI PSU.
All of these functions return a list of devices found, using the nutscan_device_t structure. This structure is described in nutscan_add_device_to_device(3).
Helper functions are also provided to output data using standard formats:
There is currently no specific mechanism for error handling.
nut-scanner(8), nutscan_scan_usb(3), nutscan_scan_snmp(3), nutscan_scan_xml_http_range(3), nutscan_scan_nut(3), nutscan_scan_avahi(3), nutscan_scan_ipmi(3), nutscan_display_sanity_check(3), nutscan_display_sanity_check_serial(3), nutscan_display_ups_conf_with_sanity_check(3), nutscan_display_parsable(3), nutscan_display_ups_conf(3), nutscan_new_device(3), nutscan_free_device(3), nutscan_add_device_to_device(3), nutscan_add_option_to_device(3), nutscan_cidr_to_ip(3)