use node.IP() to find IP address of node instead of intf.updateIP()

intf.updateIP() runs a command in the node that is being evaluated. This exposes it to the condition described in #403. node.IP() simply checks the ip address stored for the interface on the node in intf.ip. This avoids the previously stated condition because we never run a command in that node, and still has the same behavior. 

The real fix to this is to fix #366 

fixes #403