---
name: "nutscan_scan_xml_http_range"
section: "3"
platform: "linux"
package: "nut"
version: "2.8.5-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/nutscan_scan_xml_http_range"
---

# nutscan\_scan\_xml\_http\_range(3)

Scan network for XML/HTTP devices.

## 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)](/nutscan_init/3.md) 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_init/3.md), [**nutscan\_scan\_usb**(3)](/nutscan_scan_usb/3.md), [**nutscan\_scan\_snmp**(3)](/nutscan_scan_snmp/3.md), [**nutscan\_scan\_nut**(3)](/nutscan_scan_nut/3.md), [**nutscan\_scan\_avahi**(3)](/nutscan_scan_avahi/3.md), [**nutscan\_scan\_ipmi**(3)](/nutscan_scan_ipmi/3.md), [**nutscan\_display\_sanity\_check**(3)](/nutscan_display_sanity_check/3.md), [**nutscan\_display\_sanity\_check\_serial**(3)](/nutscan_display_sanity_check_serial/3.md), [**nutscan\_display\_ups\_conf\_with\_sanity\_check**(3)](/nutscan_display_ups_conf_with_sanity_check/3.md), [**nutscan\_display\_ups\_conf**(3)](/nutscan_display_ups_conf/3.md), [**nutscan\_display\_parsable**(3)](/nutscan_display_parsable/3.md), [**nutscan\_new\_device**(3)](/nutscan_new_device/3.md), [**nutscan\_free\_device**(3)](/nutscan_free_device/3.md), [**nutscan\_add\_option\_to\_device**(3)](/nutscan_add_option_to_device/3.md), [**nutscan\_add\_device\_to\_device**(3)](/nutscan_add_device_to_device/3.md), [**nutscan\_scan\_eaton\_serial**(3)](/nutscan_scan_eaton_serial/3.md), [**nutscan\_init\_ip\_ranges**(3)](/nutscan_init_ip_ranges/3.md), [**nutscan\_free\_ip\_ranges**(3)](/nutscan_free_ip_ranges/3.md), [**nutscan\_add\_ip\_range**(3)](/nutscan_add_ip_range/3.md), [**nutscan\_cidr\_to\_ip**(3)](/nutscan_cidr_to_ip/3.md)
