PHP Whois Script Help

Discussion in 'PHP' started by Tropica, Jun 2, 2007.

  1. #1
    Hello i need some help!

    I have tried maybe 10 whois scripts on my godaddy space, and i cant get one to work, it just takes a few minutes then a download whois.php box appears, my space is linux, i cant quiet work out whats happening.

    Does anyone know of a whois script that works on godaddy, or what my problem may be?

    Thanks

    :)
     
    Tropica, Jun 2, 2007 IP
  2. brealmz

    brealmz Well-Known Member

    Messages:
    335
    Likes Received:
    24
    Best Answers:
    3
    Trophy Points:
    138
    #2
    what error do you got?
     
    brealmz, Jun 2, 2007 IP
  3. Tropica

    Tropica Notable Member

    Messages:
    2,431
    Likes Received:
    128
    Best Answers:
    0
    Trophy Points:
    230
    #3
    no errors, it just takes ages to load, then asks do i want to download the php file :(
     
    Tropica, Jun 3, 2007 IP
  4. champ_rock

    champ_rock Peon

    Messages:
    3,349
    Likes Received:
    115
    Best Answers:
    0
    Trophy Points:
    0
    #4
    which whois servers are u using for conducting the whois queries?

    if possible, u can share the script here and people will be better able to analyse what is going wrong
     
    champ_rock, Jun 3, 2007 IP
  5. Tropica

    Tropica Notable Member

    Messages:
    2,431
    Likes Received:
    128
    Best Answers:
    0
    Trophy Points:
    230
    #5
    oops didnt think to post the code, lol

    thanks :)

    <?php
    
    
    define('FILE_NAME',	'whois.php');
    
    	
    
    	define('PAGE_TITLE_META', 			'Whois');			within HEADER
    	define('POWERED_BY',				'Whois');			
    
    	define('MAIN_COMMAND', 				'Please enter a suggested domain name');	
    	define('CHECK_BUTTON', 				'Check');								
    
    	
    	define('META_CHARSET',				'iso-8859-1');								
    	define('META_LANGUAGE',				'en');									
    
    	
    
    	define('FOOTER_TEXT', 				'Please wait for the answer - 
    										 due to whois servers overload it may take 
    
    a while to lookup all names.
    										 Sometimes you may need to reload the page 
    
    and repeat lookup.');				
    	define('FOOTER_RELOAD_TEXT',		'Reload');					
    
    	define('WAIT_LAYER_ENABLED',		true);
    	define('WAIT_TITLE',				'Please wait...');
    	define('WAIT_MESSAGE',				'If the lookup takes too long (more than a minute), click here to 
    
    reload the page and try again.');
    
    	define('LINK_REGISTER_TEXT',		'Register');						
    	define('STATUS_BAR_REGISTER_TEXT',	'Register');						
    	define('STATUS_BAR_DETAILS',		'Details of');						
    	define('LINK_TAKEN_DETAILS',		'Details');							
    	define('LINK_TAKEN_GOTO',			'Goto');						
    
    	define('ALL_TEXT',					'all');						
    	define('CLOSE_BUTTON_TEXT',			'Close window');					
    	define('AVAILABLE_TEXT',			'Available');						
    	define('NOT_AVAILABLE_TEXT',		'Taken');						
    
    	define('ERROR_TOO_SHORT',			'The domain name you typed is to short - it must contain minimum 3 
    
    characters'); 			
    	define('ERROR_TOO_LONG',			'The domain name you typed is to long - it may contain maximum 63 
    
    characters');		
    	define('ERROR_HYPHEN',				'Domain names cannot begin or end with a hyphen or contain double 
    
    hyphens');			
    	define('ERROR_CHARACTERS',			'Domain names can only contain alphanumerical characters and 
    
    hyphens');								
    
    	
    	
    	define('MAIN_STYLE','
    			BODY {
    				background-color: 	#ffffff;
    				color: 				#000000;
    				font-family: 		"Verdana, Arial, Helvetica";
    				font-size: 			12px;
    			}
    			TD {
    				color: 				#000000;
    				font-family: 		"Verdana, Arial, Helvetica";
    				font-size: 			12px;
    			}
    			
    			.available {
    				color: 				#006600;
    				font-family: 		"Verdana, Arial, Helvetica";
    				font-size: 			12px;
    			}
    			
    			.notavailable {
    				color: 				#FF0000;
    				font-family: 		"Verdana, Arial, Helvetica";
    				font-size: 			12px;
    			}
    			.separator {
    				background-color:	#dddddd;
    			}
    			.footer {
    				color: 				#000080;
    				font-family: 		"Verdana, Arial, Helvetica";
    				font-size: 			10px;
    			}
    			.windowborder {
    				background-color:	#cccccc;
    			}
    			.windowinside {
    				background-color:	#eeeeee;
    			}
    			.errors {
    				color: 				#FF0000;
    				font-family: 		"Verdana, Arial, Helvetica";
    				font-size: 			12px;
    			}
    			A {
    				font-family: 		"Verdana, Arial, Helvetica";
    				font-size: 			12px;
    				color:				#000000;
    				text-decoration:	none;
    			}
    			A:hover {
    				font-family: 		"Verdana, Arial, Helvetica";
    				font-size: 			12px;
    				color:				#FF0000;
    				text-decoration:	underline;
    			}
    			A.footer {
    				font-family: 		"Verdana, Arial, Helvetica";
    				color: 				#FF0000;
    				text-decoration: 	none;
    				font-size:			10px;
    			}
    			A.footer:hover {
    				font-family: 		"Verdana, Arial, Helvetica";
    				color:				#FF0000;
    				text-decoration: 	underline;
    				font-size:			10px;
    			}
    			A.footerreload {
    				font-family: 		"Verdana, Arial, Helvetica";
    				color: 				#FF0000;
    				text-decoration: 	none;
    				font-size:			12px;
    			}
    			A.footerreload:hover {
    				font-family: 		"Verdana, Arial, Helvetica";
    				color:				#FF0000;
    				text-decoration: 	underline;
    				font-size:			12px;
    			}
    			A.footerpowered {
    				font-family: 		"Verdana, Arial, Helvetica";
    				color: 				#000000;
    				text-decoration: 	none;
    				font-size:			10px;
    			}
    			A.footerpowered:hover {
    				font-family: 		"Verdana, Arial, Helvetica";
    				color:				#FF0000;
    				text-decoration: 	underline;
    				font-size:			10px;
    			}
    			
    
    
    
    		  ');		
    
    	define('COM_SERVER', 	'whois.networksolutions.com');			
    	define('COM_NOMATCH',	'no match');							
    	define('COM_INCLUDE',	true);									 
    	define('ORG_SERVER',	'whois.publicinterestregistry.net');	
    	define('ORG_NOMATCH',	'NOT FOUND');								
    	define('ORG_INCLUDE',	true);									
    
    	
    	define('INFO_SERVER',	'whois.opensrs.net');					
    	define('INFO_NOMATCH',	'Not found');							
    	define('INFO_INCLUDE',	true);									
    
    	
    	define('BIZ_SERVER',	'whois.nic.biz');						
    	define('BIZ_NOMATCH',	'Not found');							
    	define('BIZ_INCLUDE',	true);									
    
    	
    	define('REG_LINK',	true);
    	
    	define('REG_URL',	'');
    
    	
    	define('WANTLOG',	true);
    	
    	define('LOGFILE',	'whois.log');
    
    
    
    
    	if ($_POST['type']!="") define('TYPE', $_POST['type']); else define('TYPE', '');
    	if ($_POST['ddomain']!="") define('DDOMAIN', $_POST['ddomain']); else define('DDOMAIN', '');
    
    	// This function displays an available domain
    	function dispav($what)
    	{
    		echo '<tr><td nowrap align="center">';
    		if (REG_LINK)
    		{
    			echo '<a href="'.REG_URL.'" target="_blank" 
    
    onMouseOver="window.status=\''.STATUS_BAR_REGISTER_TEXT.' '.$what.'\';return true" onMouseOut="window.status=\'\';return 
    
    true">'.LINK_REGISTER_TEXT.'</a>';
    		}
    		else
    			echo '&nbsp;';
    		echo '</td>
    		<td nowrap align="center" class="available"><b>'.$what.'</b></td><td colspan=3>&nbsp;</td></tr>';
       }
    
       // Function to display an unavailable domain with additional links
       function dispun($what,$where)
       {
          echo '<tr>
    	  			<td colspan="2">&nbsp;</td>
    	            <td align="center" nowrap class="notavailable"><b>'.$what.'</b></td>
                <td nowrap align="center">
    			<a href="'.FILE_NAME.'?action=details&ddomain='.$what.'&server='.$where.'" 
    
    onMouseOver="window.status=\''.STATUS_BAR_DETAILS.' '.$what.'\';return true" onMouseOut="window.status=\'\';return true" 
    
    onClick="NewWindow(this.href,\'details\',\'620\',\'400\',\'yes\');return false;">
    			'.LINK_TAKEN_DETAILS.'</a></td>
                <td nowrap align="center"><a href="http://www.'.$what.'" target="_blank">'.LINK_TAKEN_GOTO.'</a></td>
                </tr>';
       }
    
       function startborder()
       {
          echo '<table align="center" width="600" border="0" cellspacing="0" cellpadding="0">
                <tr><td width="100%" class="windowborder">
                <table width="600" border="0" cellspacing="1" cellpadding="2">
                <tr><td class="windowinside">';
       }
    
    
       function endborder()
       {
          echo '</td></tr></table></td></tr></table>';
       }
    
       function disperror($text)
       {
          startborder();
          echo '<center><b class="errors">'.$text.'</b></center>';
          endborder();
       }
    
       function main()
       {
          echo '<br>';
          startborder();
          echo '
          <table width="100%" align="center" cellspacing="0" cellpadding="1">
          <tr>
          <td colspan="2" align="center" width="100%"><b>'.MAIN_COMMAND.'</b></td>
          </tr>
          <tr>
          <td align="center">
             <form method="POST" action="'.FILE_NAME.'">
             <input type="hidden" name="action" value="checkdom">
             <input type="hidden" name="type" value="'.TYPE.'">
             <input type="text" name="ddomain" size="30" maxlength="63" value="'.DDOMAIN.'">&nbsp;
    		 <input type="submit" name="button" value="'.CHECK_BUTTON.'">
          </td>
          <td align="left">';
    
    	if (COM_INCLUDE) { echo '<INPUT TYPE="radio" '; if(TYPE=='com' or TYPE == '') { echo 'CHECKED '; } echo ' 
    
    NAME="type" VALUE="com"> com net<br>'; }
    	if (ORG_INCLUDE) { echo '<INPUT TYPE="radio" '; if(TYPE=='org')  { echo 'CHECKED '; } echo ' NAME="type" 
    
    VALUE="org"> org<br>';	}
    	if (INFO_INCLUDE){ echo '<INPUT TYPE="radio" '; if(TYPE=='info') { echo 'CHECKED '; } echo ' NAME="type" 
    
    VALUE="info"> info<br>'; }
    	if (BIZ_INCLUDE) { echo '<INPUT TYPE="radio" '; if(TYPE=='biz')  { echo 'CHECKED '; } echo ' NAME="type" 
    
    VALUE="biz"> biz<br>'; }
    	echo '<INPUT TYPE="radio" '; if(TYPE=='all')  { echo 'CHECKED '; } echo ' NAME="type" VALUE="all"> '.ALL_TEXT.'';
    	echo '</form>
          </td>
          </tr>
          <tr><td colspan="2" align="center" class="footer">'.FOOTER_TEXT.'<br><br>
    	  <a class="footerreload" href="'.FILE_NAME.'" target="_self"><b>'.FOOTER_RELOAD_TEXT.'</b></a><br><br>
          <a class="footerpowered" href="http://www.mrscripts.co.uk" target="_blank">'.POWERED_BY.'</a>
          </td></tr>
          </table>';
          endborder();
       }
    
    	function pageheader()
    	{
    		echo '
    		<html>
    		<head>
    			<meta http-equiv="Content-Type" content="text/html; charset='.META_CHARSET.'">
    			<meta http-equiv="Content-Language" content="'.META_LANGUAGE.'">
    			<title>'.PAGE_TITLE_META.'</title>
    			<style>'.MAIN_STYLE.'</style>
    			<script type=text/javascript>
    			var win= null;
    			function NewWindow(mypage,myname,w,h,scroll)
    			{
    				var winl = (screen.width-w)/2;
    			  	var wint = (screen.height-h)/2;
    				var settings  ="height="+h+",";
    				settings +="width="+w+",";
    				settings +="top="+wint+",";
    				settings +="left="+winl+",";
    				settings +="scrollbars="+scroll+",";
    				settings +="resizable=yes";
    				win=window.open(mypage,myname,settings);
    				if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
    			}
    			</script>
    		</head>
    		<BODY>';
    	}
    	function pagefooter()
    	{
    		echo '</BODY></HTML>';
    	}
    
    
    if ($_GET['action'] == "details")
    {
    	$server = $_GET['server'];
    	$ddomain = $_GET['ddomain'];
    	pageheader();
    	echo '<pre>';
    	$fp = fsockopen($server,43);
    	fputs($fp, "$ddomain\r\n");
    	while(!feof($fp))
    	{
    		echo fgets($fp,128);
    	}
    	fclose($fp);
    	echo '</pre>';
    	echo '<p align="center"><form><input type="button" value="'.CLOSE_BUTTON_TEXT.'" 
    
    onclick="window.close()"></form>';
    	pagefooter();
    	exit;
    }
    
    elseif ($_POST['action']=='checkdom')
    {
    	if (WAIT_LAYER_ENABLED)
    	{
    		echo '
    		<script language=javascript>
    		var ie4 = (document.all) ? true : false;
    		var ns4 = (document.layers) ? true : false;
    		var ns6 = (document.getElementById && !document.all) ? true : false;
    		
    		function hidelayer(lay) {
    			if (ie4) {document.all[lay].style.visibility = "hidden";}
    			if (ns4) {document.layers[lay].visibility = "hide";}
    			if (ns6) {document.getElementById([lay]).style.display = "none";}
    		}
    
    		function showlayer(lay) {
    			if (ie4) {document.all[lay].style.visibility = "visible";}
    			if (ns4) {document.layers[lay].visibility = "show";}
    			if (ns6) {document.getElementById([lay]).style.display = "block";}
    		}
    		</script>';
    
    		echo '
    		<script language="javascript">
    		var laywidth  = screen.width/2;
    		var layheight = screen.height/2;
    		var layl   = (screen.width-laywidth)/2;
    	  	var layt   = (screen.height-layheight)/2;
    		document.write("<div id=\'waitlayer\' align=\'center\' style=\'position:absolute; width:"+laywidth+"px; 
    
    height:"+layheight+"px; z-index:-1; left:"+layl+"px; top:"+layt+"px; visibility: visible;\'>");
    		</script>';
    
      		echo '<center><b>'.WAIT_TITLE.'</b><br><br>
    		<a href="'.FILE_NAME.'" target="_self">'.WAIT_MESSAGE.'</a>
    		</div>';
    	}
    
    	// Check the name for bad characters
    	if(strlen(DDOMAIN) < 3)
    	{
    		pageheader();
    		disperror(ERROR_TOO_SHORT);
    		main();
    		pagefooter();
    		exit;
    	}
    	if(strlen(DDOMAIN) > 63)
    	{
    		pageheader();
    		disperror(ERROR_TOO_LONG);
    		main();
    		pagefooter();
    		exit;
    	}
    	if(ereg("^-|-$",DDOMAIN))
    	{
    		pageheader();
    		disperror(ERROR_HYPHEN);
    		main();
    		pagefooter();
    		exit;
    	}
    	if(!ereg("([a-z]|[A-Z]|[0-9]|-){".strlen(DDOMAIN)."}",DDOMAIN))
    	{
    		pageheader();
    		disperror(ERROR_CHARACTERS);
    		main();
    		pagefooter();
    		exit;
    	}
    	pageheader();
    	startborder();
    
    
       echo '
          <table width="100%" align="center" cellspacing="0" cellpadding="1">
             <tr>
                <td nowrap align="center" class="separator"><b>&nbsp;</b></td>
                <td nowrap align="center" class="separator"><b>'.AVAILABLE_TEXT.'</b></td>
                <td nowrap align="center" class="separator"><b>'.NOT_AVAILABLE_TEXT.'</b></td>
                <td nowrap align="center" class="separator"><b>&nbsp;</b></td>
                <td nowrap align="center" class="separator"><b>&nbsp;</b></td>
             </tr>';
    
    	if ( (TYPE == "all" or TYPE == "com") and COM_INCLUDE )
    	{
    		$com_array = array(DDOMAIN.".com",DDOMAIN.".net");
    		$com_count = count($com_array);
    		$i=0;
    		for ($i=0;$i<$com_count;$i++)
    		{
    			$domname = $com_array[$i];
    			$ns = fsockopen(COM_SERVER,43); fputs($ns,"$domname\r\n");
    			$result = '';
    			while(!feof($ns)) $result .= fgets($ns,128); fclose($ns);
    			if (eregi(COM_NOMATCH,$result)) { dispav($domname); } else { dispun($domname,COM_SERVER); }
    		}
    		echo '<tr><td colspan="5" class="separator">&nbsp;</td></tr>';
    	}
    	if ( (TYPE == "all" or TYPE == "org") and ORG_INCLUDE )
    	{
    		$org_array = array(DDOMAIN.".org");
    		$org_count = count($org_array);
    		$i=0;
    		for ($i=0;$i<$org_count;$i++)
    		{
    			$domname = $org_array[$i];
    			$ns = fsockopen(ORG_SERVER,43); fputs($ns,"$domname\r\n");
    			$result = '';
    			while(!feof($ns)) $result .= fgets($ns,128); fclose($ns);
    			if (eregi(ORG_NOMATCH,$result)) { dispav($domname); } else { dispun($domname,ORG_SERVER); }
    		}
    		echo '<tr><td colspan="5" class="separator">&nbsp;</td></tr>';
    	}
    
    	if ( (TYPE == "all" or TYPE == "info") and INFO_INCLUDE )
    	{
    		$info_array = array(DDOMAIN.".info");
    		$info_count = count($info_array);
    		$i=0;
    		for ($i=0;$i<$info_count;$i++)
    		{
    			$domname = $info_array[$i];
    			$ns = fsockopen(INFO_SERVER,43); fputs($ns,"$domname\r\n");
    			$result = '';
    			while(!feof($ns)) $result .= fgets($ns,128); fclose($ns);
    			if (eregi(INFO_NOMATCH,$result)) { dispav($domname); } else { dispun($domname,INFO_SERVER); }
    		}
    		echo '<tr><td colspan="5" class="separator">&nbsp;</td></tr>';
    	}
    
    	if ( (TYPE == "all" or TYPE == "biz") and BIZ_INCLUDE )
    	{
    		$biz_array = array(DDOMAIN.".biz");
    		$biz_count = count($biz_array);
    		$i=0;
    		for ($i=0;$i<$biz_count;$i++)
    		{
    			$domname = $biz_array[$i];
    			$ns = fsockopen(BIZ_SERVER,43); fputs($ns,"$domname\r\n");
    			$result = '';
    			while(!feof($ns)) $result .= fgets($ns,128); fclose($ns);
    			if (eregi(BIZ_NOMATCH,$result)) { dispav($domname); } else { dispun($domname,BIZ_SERVER); }
    		}
    		echo '<tr><td colspan="5" class="separator">&nbsp;</td></tr>';
    	}
    
    	echo '</table>';
    	endborder();
    	if (WAIT_LAYER_ENABLED)
    	{
    		echo '<script language="javascript">
    		hidelayer("waitlayer");
    		</script>';
    	}
    
    	// if logging enabled write info to the file
    	if(WANTLOG)
    	{
    		$remote_addr = $REMOTE_ADDR;
    		$today = date("d-m-y H:i", time());
    		if (file_exists(LOGFILE) and is_writeable(LOGFILE))
    		{
    			$fp = fopen(LOGFILE,"a+");
    			$infolog = "Date: $today | IP: $remote_addr | ".DDOMAIN."\n";
    			fputs($fp, $infolog);
    			fclose($fp);
    		}
    	}
    	main();
    	pagefooter();
    }
    
    else
    
    {
    	pageheader();
    	main();
    	pagefooter();
    }
    ?>
    PHP:
     
    Tropica, Jun 3, 2007 IP
  6. champ_rock

    champ_rock Peon

    Messages:
    3,349
    Likes Received:
    115
    Best Answers:
    0
    Trophy Points:
    0
    #6
    one hell of a complicated code.. frankly telling it went above my head

    but just for ur information please change whois.networksolutions.com to whois.crsnic.net

    i think it should work fine then
     
    champ_rock, Jun 3, 2007 IP
  7. Vbot

    Vbot Peon

    Messages:
    107
    Likes Received:
    7
    Best Answers:
    0
    Trophy Points:
    0
    #7
    Try not to use fsockopen function, use curl instead. I think godaddy disabled that function or something.
     
    Vbot, Jun 3, 2007 IP
  8. Tropica

    Tropica Notable Member

    Messages:
    2,431
    Likes Received:
    128
    Best Answers:
    0
    Trophy Points:
    230
    #8
    ah curl, didnt think of that!

    and i will change to whois.crsnic.net

    Thanks champ_rock and Vbot, i will let you know how i get on :)
     
    Tropica, Jun 3, 2007 IP
  9. Tropica

    Tropica Notable Member

    Messages:
    2,431
    Likes Received:
    128
    Best Answers:
    0
    Trophy Points:
    230
    #9
    hmm no change, still does the same thing :(
     
    Tropica, Jun 3, 2007 IP