--- whois.module.orig	2009-06-22 15:04:24.000000000 +0200
+++ whois.module	2009-10-29 14:11:00.000000000 +0100
@@ -334,17 +315,30 @@
   return FALSE;
 }
 
+/**
+ * Parse the user input to extract an IP or domainname.
+ * Elements like http:// are removed
+ *
+ * @param $url
+ *   The user input
+ * 
+ * @return 
+ *   The cleaned up domain or IP to look up
+ */
 function whois_parse_url($url) {
-  $r  = "^(?:(?P<scheme>\w+)://)?";
-  $r .= "(?:(?P<login>\w+):(?P<pass>\w+)@)?";
-  $r .= "(?P<host>(?:(?P<subdomain>[\w\.]+)\.)?" . "(?P<domain>\w+\.(?P<extension>\w+)))";
-  $r .= "(?::(?P<port>\d+))?";
-  $r .= "(?P<path>[\w/]*/(?P<file>\w+(?:\.\w+)?)?)?";
-  $r .= "(?:\?(?P<arg>[\w=&]+))?";
-  $r .= "(?:#(?P<anchor>\w+))?";
-  $r = "!$r!";                                                // Delimiters
+  include_once('phpwhois/whois.ip.lib.php');
+  if (validip($url)) {
+    return $url;
+  } else {
+    $r  = "^(?:(?P<scheme>\w+)://)?";
+    $r .= "(?:(?P<login>\w+):(?P<pass>\w+)@)?";
+    $r .= "(?P<host>(?:(?P<subdomain>[\w\.]+)\.)?" . "(?P<domain>\w+\.(?P<extension>\w+)))";
+    $r .= "(?::(?P<port>\d+))?";
+    $r .= "(?P<path>[\w/]*/(?P<file>\w+(?:\.\w+)?)?)?";
+    $r .= "(?:\?(?P<arg>[\w=&]+))?";
+    $r .= "(?:#(?P<anchor>\w+))?";
+    $r = "!$r!";                                                // Delimiters
 
-  preg_match($r, $url, $result);
-
-  return $result[6];
+    return $result[6];
+  }
 }
