If you're going with BootP, when configured, at Boot (hence the name) it will generate a broadcast "what is my address?" message that will be received by the BootP server which will generate a reply "your address is..." broadcast message. From what I understand, it can allow the machine to hold the address until it powers down whereupon boot up will restard the process all over again.
We're running this on about 1600 machines and the IP Addresses that need to be assigned are specific ones depending on the current configuration of the system (that can change up to four times a day). There are also on average about 4 IP Addresses assigned to the NIC, some need to be static and persistent. Some need to be non-persistent and last as long as the computer is powered on.
Though I'm curious as to why you can't run DHCP
Disallowed due to security constraints, and we're now far too far down the line of development/integration to change it if we wanted or were allowed to. There are other reasons too that I can't/won't get into.
We are currently using netsh to set it, but there is no option in netsh to make the ip address non-persistent. Having a script to run at shutdown to remove the IP addresses is all well and good, but on an unexpected powerdown, the IP addresses will not be removed (as the shutdown scripts will not run). Running them at startup does not work reliably enough if you already have IP address conflicts.
Use DHCP and reserve the IP address. That way, each client will get the same IP address each time.
I already said that we are not using DHCP. Also, we don't want the client to have the same IP addresses each time it boots up. The IP addresses (for reasons that I'm not getting into here) change each time it is reconfigured, with (generally) IP address being moved from machine to machine as the roles change.
In linux, if you change the ip address with ifconfig (to a static address) it will remain on there, working as normal, until the machine is rebooted (this may not happen on all the flavours, but I've definitely seen it on Suse). What I want to know is if this is possible with Windows. It is by far the simplest solution to the state that we're in.