There is another solution that I've been working on to this problem. This might work for you depending on how you have your networks subnetted. First, you read in the IP address of the host.. then you ping the logonserver, then you parse the IP address of the logonserver and the host, then you compare the two IP addresses using the subnet your network--Then you know whethor or not the host and the logonserver are in the same network (wow just like arp does!).
If they don't match up, then you force a logout, if they match then you allow logon to continue.I don't know why you'd need the address of the DHCP server as long as it's in the same network as the logonserver and I haven't heard of any DHCP servers that assign IP's across routers...This plan might be fouled if you've got supernetted IP addresses or something funky like that, but it should work if you're using regular 255.255.255.0 subnet masks. (I'm about 75% done with it, I have it working except I haven't written the code to parse the IP address from a ping statement).