On Thu, Oct 14, 2004 at 05:44:57PM +0400, Grigory Klyuchnikov wrote:
> Hello,
> 
> How can a user process get IPv6 multicast addresses of ethernet
> interfaces? I have FreeBSD 5.2.1 and get interface addresses
> via ioctl(SIOCGIFCONF) or sysctl(witch NET_RT_IFLIST),
> but all returned addresses are unicast.

getifaddrs(3) and getifmaddrs(3) may do what you want.

> In net/if.h there is a struct ifma_msghdr:
> 
> /*
>  * Message format for use in obtaining information about multicast addresses
>  * from the routing socket
>  */
> struct ifma_msghdr {
>       u_short ifmam_msglen;   /* to skip over non-understood messages */
>       u_char  ifmam_version;  /* future binary compatibility */
>       u_char  ifmam_type;     /* message type */
>       int     ifmam_addrs;    /* like rtm_addrs */
>       int     ifmam_flags;    /* value of ifa_flags */
>       u_short ifmam_index;    /* index for associated ifp */
> };
> 
> 
> How it may be used?

In addition to the functions above, you can directly access these
structures via sysctl (see src/lib/libc/net/getifmaddrs.c for an
example).

-- Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4

Attachment: pgpXgCxZPPbXl.pgp
Description: PGP signature

Reply via email to