# NUTSCAN_SCAN_XML_HTTP_RANGE(3)

## NAME

nutscan_scan_xml_http_range - Scan network for XML/HTTP devices.

## SYNOPSIS

            #include <nut-scan.h>
            #include <unistd.h> /* useconds_t */

            nutscan_device_t * nutscan_scan_xml_http_range(
                    const char * start_ip,
                    const char * end_ip,
                    useconds_t usec_timeout,
                    nutscan_xml_t * sec)

            nutscan_device_t * nutscan_scan_ip_range_xml_http(
                    nutscan_ip_range_list_t * irl,
                    useconds_t usec_timeout,
                    nutscan_xml_t * sec)

## DESCRIPTION

The nutscan_scan_xml_http_range() and nutscan_scan_ip_range_xml_http() functions try to detect NUT compatible XML/HTTP devices.

If start_ip for the former or irl for the latter are NULL, the respective function does this by issuing a broadcast message on all currently configured network interfaces.

Otherwise, the former queries every IP ranging from start_ip to stop_ip, , where startIP is mandatory and stopIP is optional (one startIP address is scanned if stopIP is NULL); while the latter can walk several IP address ranges represented by a `nutscan_ip_range_list_t` structure.

Those IP arguments may be either IPv4 or IPv6 addresses or host names.

It waits up to usec_timeout microseconds for a response from potential devices.

You MUST call nutscan_init(3) before using this function.

## RETURN VALUE

The nutscan_scan_xml_http_range() function returns a pointer to a `nutscan_device_t` structure containing all found devices or NULL if an error occurs or no device is found.

## SEE ALSO

nutscan_init(3), nutscan_scan_usb(3), nutscan_scan_snmp(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_ups_conf(3), nutscan_display_parsable(3), nutscan_new_device(3), nutscan_free_device(3), nutscan_add_option_to_device(3), nutscan_add_device_to_device(3), nutscan_scan_eaton_serial(3), nutscan_init_ip_ranges(3), nutscan_free_ip_ranges(3), nutscan_add_ip_range(3), nutscan_cidr_to_ip(3)