bwayson's solution sounds pretty valid. Why exactly do you want to include all of the addresses in the dhcp server config, then exclude some, rather than just use a range that does not include the addresses that you want excluded?
That said, http://www.linuxjunkies.org/articles...junkified.html
has some good info:
Even though DHCP gives out IP address dynamically, it also has the ability to reserve an IP address for a certain computer. In this sense it's almost as if the client computer has a static IP even though it uses DHCP to get it. This is useful if you want to be able to put entries in your /etc/hosts file and not have to worry about the entry becoming invalid over time.
The first thing we must do is to specify a name for the computer as a helpful identifier
Note that similarly to the subnet grouping, we are now starting a sub-group as seen by the addition of the curly braces. This allows us to have multiple host definitions within one subnet group.
This next line is what allows us to uniquely identify one computer from another. The hardware ethernet address is the same as the MAC address. This information can be found by running the command ifconfig <interface> | grep HWaddr on a client computer for linux and ipconfig /all for a client computer running windows.
hardware ethernet 00:50:AB:AB:AB:AB;
And finally this next line tells the dhcpd server what IP address you always want to be assigned to this computer. Note that I intentionally make all IP's assigned this way outside of the DHCP range we specified earlier. This is not a must as the dhcp server is smart enough to not give out two IP's simultaneously but it helps in being able to quickly recognize which clients used this feature.
If you have multiple ranges of IP addresses on the same subnet, you can add multiple range options to a subnet declaration.
subnet 18.104.22.168 netmask 255.255.255.0
range 10.0.1.10 10.0.1.100;
range 10.0.1.300 10.0.1.500;