You don't. The hosts file isn't set up to deal with variable addresses. What you want to do is make an address reservation on a DNS server someplace.
Exactly. You tell the DHCP server to update the sites DNS records, and in your nsswitch.conf configuration on each host, you should have something like:
hosts: files dns mdns
ipnodes: files dns mdns
which tells the localhost to look at /etc/hosts, then query dns, etc.
to configure on the client, it's basically
* Define new dns settings (resolv.conf)
svccfg -s dns/client "setprop config/nameserver = net_address: 10.0.1.1"
svccfg -s dns/client "setprop config/domain = astring: raghon.no"
svccfg -s dns/client "setprop config/search = astring: raghon.no"
svcadm enable dns/client
* Configure name-service switch (nsswitch.conf)
svccfg -s name-service/switch "setprop config/host = astring: \"files dns\""
svcadm restart name-service/switch
(The DHCP server will have all the DNS configuration in there, so there should be no need to worry about that, so any client using DHCP for getting it's IP should have it's DNS server set automatically).
DHCP Manual:
http://docs.oracle.com/cd/E19082-01/819-3000/dhcptm-1/index.html