Get multicast addresses from interface

Brooks Davis brooks at one-eyed-alien.net
Thu Oct 14 08:00:50 PDT 2004


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20041014/a0249f89/attachment.bin


More information about the freebsd-questions mailing list