the ip should be optional, and by default use the current ip