fixes
diff --git a/wally/utils.py b/wally/utils.py
index dcc03cb..36601cd 100644
--- a/wally/utils.py
+++ b/wally/utils.py
@@ -10,6 +10,19 @@
 logger = logging.getLogger("wally")
 
 
+def is_ip(data):
+    if data.count('.') != 3:
+        return False
+
+    try:
+        for part in map(int, data.split('.')):
+            if part > 255 or part < 0:
+                raise ValueError()
+    except ValueError:
+        return False
+    return True
+
+
 def parse_creds(creds):
     # parse user:passwd@host
     user, passwd_host = creds.split(":", 1)
@@ -91,10 +104,11 @@
 
 
 def get_ip_for_target(target_ip):
-    if not re.match("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]$", target_ip):
+    if not is_ip(target_ip):
         target_ip = socket.gethostbyname(target_ip)
 
-    if target_ip in ('localhost', '127.0.0.1', '127.0.1.1'):
+    first_dig = map(int, target_ip.split("."))
+    if first_dig == 127:
         return '127.0.0.1'
 
     cmd = 'ip route get to'.split(" ") + [target_ip]