--- 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\w+)://)?"; - $r .= "(?:(?P\w+):(?P\w+)@)?"; - $r .= "(?P(?:(?P[\w\.]+)\.)?" . "(?P\w+\.(?P\w+)))"; - $r .= "(?::(?P\d+))?"; - $r .= "(?P[\w/]*/(?P\w+(?:\.\w+)?)?)?"; - $r .= "(?:\?(?P[\w=&]+))?"; - $r .= "(?:#(?P\w+))?"; - $r = "!$r!"; // Delimiters + include_once('phpwhois/whois.ip.lib.php'); + if (validip($url)) { + return $url; + } else { + $r = "^(?:(?P\w+)://)?"; + $r .= "(?:(?P\w+):(?P\w+)@)?"; + $r .= "(?P(?:(?P[\w\.]+)\.)?" . "(?P\w+\.(?P\w+)))"; + $r .= "(?::(?P\d+))?"; + $r .= "(?P[\w/]*/(?P\w+(?:\.\w+)?)?)?"; + $r .= "(?:\?(?P[\w=&]+))?"; + $r .= "(?:#(?P\w+))?"; + $r = "!$r!"; // Delimiters - preg_match($r, $url, $result); - - return $result[6]; + return $result[6]; + } }