Finding all IPv4 addresses associated with INADDR_ANY (?)

Robert Watson rwatson at freebsd.org
Mon Feb 23 20:36:24 PST 2004


On Mon, 23 Feb 2004, Ronald F. Guilmette wrote:

> Given a socket which has been properly created, opened, and then bound
> to some port and the special INADDR_ANY ``wildcard'' address, I need to
> be able to them programatically find all of the IPv4 addresses that the
> socket was just bound to. 
> 
> Can anyone suggest a way to do this? 
> 
> Can anyone suggest a way to do this easily? 
> 
> Can anyone suggest a way to do this portably? 

In another e-mail, it's recommended that you try out getifaddrs().  This
is almost certainly the best thing to do, but I wanted to point out one
thing about the question you asked: when you bind a socket to INADDR_ANY,
you're actually not saying "bind to all addresses available at the moment
of binding", you're saying "bind to all addresses available at the moment
of comparison".  I.e., the PCB in kernel retains the value INADDR_ANY, and
will match new IP addresses added to interfaces at some later time also. 

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Senior Research Scientist, McAfee Research





More information about the freebsd-net mailing list