I visit places with staticly assigned addresses, which posed a similar problem. So I wrote up a little script which utilizes tcpdump to sniff for the network address, then automatically reset my ip to a random or ARGV number based on the nework address. It defaults the gateway to .1, athough that can be specified on cmd line as well.
Obviously this method only works as-is for linux, but it saves me a lot of time.
There is room for quite a bit of improvement by someone who has experience with the Packet::sniff module, not to mention someone who knows how to this kinda thing on Windows.