Re: Get multicast addresses from interface

From: Brooks Davis (brooks_at_one-eyed-alien.net)
Date: 10/14/04

  • Next message: Stephane Raimbault: "Re: Error 49, socket problem?"
    Date: Thu, 14 Oct 2004 08:01:49 -0700
    To: Grigory Klyuchnikov <grn@ispras.ru>
    
    
    

    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 message: Stephane Raimbault: "Re: Error 49, socket problem?"

    Relevant Pages