net(3)



net(3erl)                  Erlang Module Definition                  net(3erl)

NAME
       net - Network interface.

DESCRIPTION
       This module provides an API for the network interface.

   Note:
       There is currently no support for Windows.

   Note:
       The  content  of  this  file is only valid if the system has been built
       with 'socket' (esock) support, which is the default.

DATA TYPES
       address_info() =
           #{family := term(),
             socktype := term(),
             protocol := term(),
             address := term()}

       ifaddrs() =
           #{name := string(),
             flags := [ifaddrs_flag()],
             addr := socket:sockaddr(),
             netmask := socket:sockaddr(),
             broadaddr := socket:sockaddr(),
             dstaddr := socket:sockaddr()}

              This type defines all addresses (and flags) associated with  the
              interface.

              Not  all  fields  of this map has to be present. The flags field
              can be used to test for some of the fields. For  example  broad-
              addr  will  only  be present if the broadcast flag is present in
              flags.

       ifaddrs_flag() =
           up | broadcast | debug | loopback | pointopoint | notrailers |
           running | noarp | promisc | master | slave | multicast |
           portsel | automedia | dynamic

       ifaddrs_filter() =
           all | default | inet | inet6 | packet |
           ifaddrs_filter_map() |
           ifaddrs_filter_fun()

                all:
                  All interfaces

                default:
                  Interfaces with address family inetandinet6

                inet | inet6 | packet:
                  Interfaces with only the specified address family

       ifaddrs_filter_map() =
           #{family := default | inet | inet6 | packet | all,
             flags := any | [ifaddrs_flag()]}

              The family field can only have the (above) specified values (and
              not all the values of socket:domain()).

              The  use of the flags field is that any flag provided must exist
              for the interface.

              For example, if family is set to inet and flags  to  [broadcast,
              multicast]  only  interfaces  with  address  family inet and the
              flags broadcast and multicast will be listed.

       ifaddrs_filter_fun() = fun((ifaddrs()) -> boolean())

              For each ifaddrs entry, return either true to keep the entry  or
              false to discard the entry.

              For  example,  to get an interface list which only contains non-
              loopback inet interfaces:

                   net:getifaddrs(fun(#{addr  := #{family := inet},
                                        flags := Flags}) ->
                                    not lists:member(loopback, Flags);
                               (_) ->
                                    false
                               end).

       name_info() = #{host := string(), service := string()}

       name_info_flags() = [name_info_flag() | name_info_flag_ext()]

       name_info_flag() =
           namereqd | dgram | nofqdn | numerichost | numericserv

       name_info_flag_ext() = idn

       network_interface_name() = string()

       network_interface_index() = integer() >= 0

EXPORTS
       gethostname() -> {ok, HostName} | {error, Reason}

              Types:

                 HostName = string()
                 Reason = term()

              Returns the name of the current host.

       getnameinfo(SockAddr) -> {ok, Info} | {error, Reason}

       getnameinfo(SockAddr, Flags) -> {ok, Info} | {error, Reason}

              Types:

                 SockAddr = term()
                 Flags = name_info_flags() | undefined
                 Info = name_info()
                 Reason = term()

              Address-to-name translation in a protocol-independant manner.

              This function is the  inverse  of  getaddrinfo.  It  converts  a
              socket address to a corresponding host and service.

       getaddrinfo(Host) -> {ok, Info} | {error, Reason}

       getaddrinfo(Host, Service :: undefined) ->
                      {ok, Info} | {error, Reason}

       getaddrinfo(Host :: undefined, Service) ->
                      {ok, Info} | {error, Reason}

       getaddrinfo(Host, Service) -> {ok, Info} | {error, Reason}

              Types:

                 Host = Service = string()
                 Info = [address_info()]
                 Reason = term()

              Network address and service translation.

              This  function  is  the inverse of getnameinfo. It converts host
              and service to a corresponding socket address.

              One of the Host and Service may be undefined but not both.

       getifaddrs() -> {ok, IfAddrs} | {error, Reason}

       getifaddrs(Filter) -> {ok, IfAddrs} | {error, Reason}

       getifaddrs(Namespace) -> {ok, IfAddrs} | {error, Reason}

       getifaddrs(Filter, Namespace) -> {ok, IfAddrs} | {error, Reason}

              Types:

                 Filter = ifaddrs_filter()
                 Namespace = file:filename_all()
                 IfAddrs = [ifaddrs()]
                 Reason = term()

              Get interface addresses.

              This function is used to get the machines  interface  addresses,
              possibly filtered according to Filter.

              By  default,  a  filter  with  the content: #{family => default,
              flags => any} is used. This  will  return  all  interfaces  with
              adresses in the inet and inet6 families.

       if_name2index(Name) -> {ok, Idx} | {error, Reason}

              Types:

                 Name = network_interface_name()
                 Idx = network_interface_index()
                 Reason = term()

              Mappings between network interface names and indexes.

       if_index2name(Idx) -> {ok, Name} | {error, Reason}

              Types:

                 Idx = network_interface_index()
                 Name = network_interface_name()
                 Reason = term()

              Mappings between network interface index and names.

       if_names() -> Names | {error, Reason}

              Types:

                 Names = [{Idx, If}]
                 Idx = network_interface_index()
                 If = network_interface_name()
                 Reason = term()

              Get network interface names and indexes.

Ericsson AB                       kernel 7.0                         net(3erl)

Man(1) output converted with man2html
list of all man pages