[usocket-devel] Determining the local host address from wildcard host

R. Matthew Emerson rme at clozure.com
Mon Mar 8 18:50:32 UTC 2010


On Mar 7, 2010, at 2:36 PM, Elliott Slaughter wrote:

> What I am actually trying to do is to search for other nodes on the local network which are also running my application. My idea was to construct one or more broadcast addresses, send UDP packets to each of them, and listen for responses. This may not be the best way to go about this (and suggestions would be appreciated), but if I choose this route, I would want to know the IP address of each of the interfaces together with its subnet mask.
> 
> On 2010-03-07, at 07:20 , Elliott Slaughter wrote:
> 
> if you really need this, you might look at the implementation for %get-ip-interfaces in clozure.
> it uses getifaddrs in a fairly transparent manner, so, if you're unix-based, you should be ok with it.
> 
> I need this to work on Windows and *nix, which is why I can't use IOlib or other Unix-based solutions. That said, Clozure does run on Windows, so hopefully the code you mentioned has already been ported.

There's an internal function ccl::%get-ip-interfaces that's conditionalized for a bunch of platforms.  I can't really recommend that you use it, of course, but it might be something to look at.

I wonder if you could use zeroconf/bonjour?  It sounds like your application might be a good fit. There's a reference to a CL interface at http://www.cliki.net/CL-ZEROCONF (though I don't know how complete/portable it is).





More information about the usocket-devel mailing list