Sure well
NetNameResolver localHostName gives me 'Otter-2.local'
then
NetNameResolver addressesForName: 'Otter-2.local' gives me back a collection with 6 addresses, but you are saying for your machine you only get back 1 address? Lucky you, but will your production machine give back one address, or 23?
I think here the problem is your machine is returning 'localhost.localdomain' Oddly on os-x asking for NetNameResolver addressForName: 'localhost.localdomain' gives you a primitive failure.
Also as you saw, my localHostName is 'Otter-2.local' which is the boujour name http://support.apple.com/kb/TA20999?viewlocale=en_US
Maybe the question is does your computer have a DNS assigned name?
In Pharo Ian's code is below, note how the SocketAddressInformation>>forHost:... iterates to get all the socket info.
addressesForName: hostName "NetNameResolver addressesForName: 'impara.de' " | adresses | adresses := SocketAddressInformation forHost: hostName service: '' flags: 0 addressFamily: 0 socketType: SocketAddressInformation socketTypeStream protocol: SocketAddressInformation protocolTCP. ^adresses
SocketAddressInformation >>forHost: hostName service: servName flags: flags addressFamily: family socketType: type protocol: protocol
| result addr | NetNameResolver initializeNetwork. NetNameResolver primGetAddressInfoHost: hostName service: servName flags: flags family: family type: type protocol: protocol. result := OrderedCollection new. [(addr := NetNameResolver nextSocketAddressInformation) notNil] whileTrue: [result add: addr]. ^result
On 26-Aug-09, at 2:57 PM, Andreas Raab wrote:
John M McIntosh wrote:
NetNameResolver addressesForName: self localHostName
This doesn't work at all for me. In fact it's not even asking the right question ;-) Using the 3.10-6 VM with an Etoys-dev image I get this:
NetNameResolver localHostName => 'localhost.localdomain'
NetNameResolver addressesForName: NetNameResolver localHostName => 127.0.0.1(localhost),0(0)-inet4-stream-tcp
I'm not surprised with the result because you are asking DNS to resolve localhost.localdomain which is different from asking the question of what IP addresses are assigned to the various interfaces in your system.
I thought Bert said that there is a way to enumerate the IP addresses of the interfaces?
Cheers,
- Andreas
-- = = = ======================================================================== John M. McIntosh johnmci@smalltalkconsulting.com Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com = = = ========================================================================