## Network interfaces discovery Network interfaces discovery — Utility functions to discover local network interfaces |

## Stability Level

Stable, unless otherwise indicated

## Functions

gchar * | nice_interfaces_get_ip_for_interface ()
GList * | nice_interfaces_get_local_interfaces ()
GList * | nice_interfaces_get_local_ips ()
guint | nice_interfaces_get_if_index_by_addr ()

## Includes

    #include <interfaces.h>

## Description

These utility functions allow the discovery of local network interfaces in a portable manner, they also allow finding the local ip addresses or the address allocated to a network interface.

## Functions

### nice_interfaces_get_ip_for_interface ()

    gchar *
    nice_interfaces_get_ip_for_interface (gchar *interface_name);

Retrieves the IP address of an interface by its name. If this fails, `NULL` is returned.

#### Parameters

interface_name | name of local interface |

#### Returns

a newly-allocated string with the IP address.

[nullable][transfer full]

### nice_interfaces_get_local_interfaces ()

    GList *
    nice_interfaces_get_local_interfaces (void);

Get the list of local interfaces

#### Returns

a newly-allocated GList of strings. The caller must free it.

[element-type utf8][transfer full]

### nice_interfaces_get_local_ips ()

    GList *
    nice_interfaces_get_local_ips (gboolean include_loopback);

Get a list of local ipv4 interface addresses

#### Parameters

include_loopback | Include any loopback devices |

#### Returns

a newly-allocated GList of strings. The caller must free it.

[element-type utf8][transfer full]

### nice_interfaces_get_if_index_by_addr ()

    guint
    nice_interfaces_get_if_index_by_addr (NiceAddress *addr);

Returns the interface index match the local address passed. This can by used for APIs that need a specific address.

#### Parameters

addr | A NiceAddress for a local interface |

#### Returns

The interface index or 0 on error

Since: 0.1.20