I forget which DSLAM equipment my ISP upgraded to, but it is new stuff, and whenever I change the NIC connected to the modem, I get a new address. If the MAC addy is the same, I get the same address.
My modem is hooked to a hub.
I have a FreeBSD router, hooked to the hub from the wan side NIC.
My computer has a second NIC hooked to that hub, disabled normally.
When I disable it, I also change the MAC addy like so, xx xx xx xx BA to xx xx xx xx BB.
When I want to connect directly to the internet, I ifconfig down the wan port on my router, change the MAC addy on my second NIC, and enable it.
I get the same IP that way. If I just connect my computer without doing that, I get a different IP, and the ISP's dhcp server gives away my old IP while I am directly connected.
The only way I can get a different IP with the same MAC addy is to remain offline totally for an hour or so, and the dhcp server gives my old addy away.
Edit: I want the direct connect for some buggy protocols that do not NAT worth beans, unless you open up all the high ports.