---
name: "nutscan_scan_nut"
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_nut"
---

# nutscan\_scan\_nut(3)

Scan network for available NUT services.

## NAME

nutscan\_scan\_nut - Scan network for available NUT services.

## SYNOPSIS

```
        #include <nut-scan.h>
        #include <unistd.h> /* useconds_t */
        nutscan_device_t * nutscan_scan_nut(
                const char * startIP,
                const char * stopIP,
                const char * port,
                useconds_t usec_timeout);
        nutscan_device_t * nutscan_scan_ip_range_nut(
                nutscan_ip_range_list_t * irl,
                const char * port,
                useconds_t usec_timeout);
```

## DESCRIPTION

The **nutscan\_scan\_nut()** and **nutscan\_scan\_ip\_range\_nut()** functions try to detect available NUT services and their associated devices. The former issues a NUT request on every IP ranging from *startIP* to *stopIP*, 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.

You MUST call [**nutscan\_init**(3)](/nutscan_init/3.md) before using this function.

A specific *port* number may be passed, or NULL to use the default NUT port.

This function waits up to *usec\_timeout* microseconds before considering an IP address does not respond to NUT queries.

## RETURN VALUE

The **nutscan\_scan\_nut()** 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\_xml\_http\_range**(3)](/nutscan_scan_xml_http_range/3.md), [**nutscan\_scan\_snmp**(3)](/nutscan_scan_snmp/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)
