verror Posted October 12, 2012 Share Posted October 12, 2012 I am currently working on/updating a whois script (PHPAjaxwhois) At current you have the ability to enter a domain (without the extension. e.g: www.google) and then select a tld/extension from a list of check boxes before searching. I am working on updating this to not require the selection of a tld/extension via a check box but by just typing it directly in (e.g www.google.com) for the search. The original code is: class AjaxWhois{ var $serverList; var $tr = 0; function CheckWhois($domain){ return " <a href=\"#\" onclick=\"javascript:makeRequest('get.php', '?domain=$domain');\">Whois</a> "; } function tldList(){ $i = 0; foreach ($this->serverList as $value) { if ($value['check'] == true) $checked=" checked='checked' "; else $checked = " "; echo '<td><input type="checkbox" name="tld_'.$value['tld'].'"'.$checked.' />.'.$value['tld'].'</td>'; $i++; if ($i > 4) { $i = 0; echo '</tr><tr>'; } } } function processAjaxWhois(){ $domainName = (isset($_POST['domain'])) ? $_POST['domain'] : ''; for ($i = 0; $i < sizeof($this->serverList); $i++) { $actTop = " _".$this->serverList[$i]['tld']; $check = str_replace(".", "_", $actTop); $this->serverList[$i]['check'] = isset($_POST[$check]) ? true : false; } if (strlen($domainName)>2){ echo '<fieldset><legend class="green">Whois results</legend>'; echo '<table class="tabel">'; echo '<tr><th colspan="2"></th></tr>'; for ($i = 0; $i < sizeof($this->serverList); $i++) { if ($this->serverList[$i]['check']){ $this->showDomainResult($domainName.".".$this->serverList[$i]['tld'], $this->serverList[$i]['server'], $this->serverList[$i]['response']); } } echo '</table></fieldset>'; } } function showDomainResult($domain,$server,$findText){ if ($this->tr == 0){ $this->tr = 1; $class = " class='alt'"; } else { $this->tr = 0; $class = ""; } if ($this->checkDomain($domain,$server,$findText)){ echo "<tr $class><td><span class='td'>$domain</span></td><td class='disponibil'><img src='images/available.png' width='16' height='16' align='absmiddle'/> AVAILABLE | <a href='#'>REGISTER DOMAIN NAME</td></a></tr>"; } else echo "<tr $class><td><span class='ta'>$domain</span></td><td class='ocupat'><img src='images/taken.png' width='16' height='16' align='absmiddle'/> TAKEN <a href='http://www.$domain/' target='_blank'> WWW </a> ".$this->CheckWhois($domain)."</td></tr>"; } function checkDomain($domain,$server,$findText){ $con = fsockopen($server, 43); if (!$con) return false; fputs($con, $domain."\r\n"); $response = ' :'; while(!feof($con)) { $response .= fgets($con,128); } fclose($con); $tld = substr($domain, -3, 3); //echo $tld; if ($tld == ".au") { if (strpos($response, $findText)){ return false; } else { return true; } } else { if (strpos($response, $findText)){ return true; } else { return false; } } } //whois servers and extensions function AjaxWhois(){ $this->serverList[0]['tld'] = 'com.au'; $this->serverList[0]['server'] = 'whois-check.ausregistry.net.au'; $this->serverList[0]['response'] = 'Not'; $this->serverList[0]['check'] = false; $this->serverList[1]['tld'] = 'net.au'; $this->serverList[1]['server'] = 'whois-check.ausregistry.net.au'; $this->serverList[1]['response'] = 'Not'; $this->serverList[1]['check'] = false; $this->serverList[2]['tld'] = 'org.au'; $this->serverList[2]['server'] = 'whois-check.ausregistry.net.au'; $this->serverList[2]['response'] = 'Not'; $this->serverList[2]['check'] = false; $this->serverList[3]['tld'] = 'asn.au'; $this->serverList[3]['server'] = 'whois-check.ausregistry.net.au'; $this->serverList[3]['response'] = 'Not'; $this->serverList[3]['check'] = false; $this->serverList[4]['tld'] = 'id.au'; $this->serverList[4]['server'] = 'whois-check.ausregistry.net.au'; $this->serverList[4]['response'] = 'Not'; $this->serverList[4]['check'] = false; $this->serverList[5]['tld'] = 'com'; $this->serverList[5]['server'] = 'whois.crsnic.net'; $this->serverList[5]['response'] = 'No match for'; $this->serverList[5]['check'] = false; $this->serverList[6]['tld'] = 'net'; $this->serverList[6]['server'] = 'whois.crsnic.net'; $this->serverList[6]['response'] = 'No match for'; $this->serverList[6]['check'] = false; $this->serverList[7]['tld'] = 'org'; $this->serverList[7]['server'] = 'whois.publicinterestregistry.net'; $this->serverList[7]['response'] = 'NOT FOUND'; $this->serverList[7]['check'] = false; $this->serverList[8]['tld'] = 'info'; $this->serverList[8]['server'] = 'whois.afilias.net'; $this->serverList[8]['response'] = 'NOT FOUND'; $this->serverList[8]['check'] = false; $this->serverList[9]['tld'] = 'name'; $this->serverList[9]['server'] = 'whois.nic.name'; $this->serverList[9]['response'] = 'No match'; $this->serverList[9]['check'] = false; $this->serverList[10]['tld'] = 'us'; $this->serverList[10]['server'] = 'whois.nic.us'; $this->serverList[10]['response'] = 'Not found:'; $this->serverList[10]['check'] = false; $this->serverList[11]['tld'] = 'biz'; $this->serverList[11]['server'] = 'whois.nic.biz'; $this->serverList[11]['response'] = 'Not found'; $this->serverList[11]['check'] = false; $this->serverList[12]['tld'] = 'ca'; $this->serverList[12]['server'] = 'whois.cira.ca'; $this->serverList[12]['response'] = 'AVAIL'; $this->serverList[12]['check'] = false; $this->serverList[13]['tld'] = 'nz'; $this->serverList[13]['server'] = 'whois.srs.net.nz'; $this->serverList[13]['response'] = 'No Data Found'; $this->serverList[13]['check'] = false; $this->serverList[14]['tld'] = 'eu'; $this->serverList[14]['server'] = 'whois.eu'; $this->serverList[14]['response'] = 'FREE'; $this->serverList[14]['check'] = false; $this->serverList[15]['tld'] = 'ro'; $this->serverList[15]['server'] = 'whois.rotld.ro'; $this->serverList[15]['response'] = 'No entries found for the selected source'; $this->serverList[15]['check'] = false; $this->serverList[16]['tld'] = 'ws'; $this->serverList[16]['server'] = 'whois.nic.ws'; $this->serverList[16]['response'] = 'No match for'; $this->serverList[16]['check'] = false; $this->serverList[17]['tld'] = 'co.uk'; $this->serverList[17]['server'] = 'whois.nic.uk'; $this->serverList[17]['response'] = 'No match for'; $this->serverList[17]['check'] = false; $this->serverList[18]['tld'] = 'de'; $this->serverList[18]['server'] = 'whois.denic.de'; $this->serverList[18]['response'] = 'not found in database'; $this->serverList[18]['check'] = false; } } ?> And the form: <form id="whois" action="whois.php" method="post" > <div id="domain"> <fieldset> <legend>Search for your domain name</legend> <h2 style="margin-left:10px;"></h2> <div class="l1"> <span style="font-size:18px;">www.</span><input type="text" name="domain" class="input"/> <p align="center" style="font-size:14px;">(e.g yourcompany)</p> </div> <div class="l2"> <table width="580" border="0" cellspacing="0" cellpadding="0"> <tr> <?php $whois->tldList();?> </tr> </table> </div> <div class="r"><br /> <input name="Submit" type="submit" value="Search" class="input" /> </div> </fieldset></div> </form> </div> I assume that to accomplish the change I would need to run a query against what has been entered into the text file to grab anything after the first "." and call that as the tld, something like this: $domaintld = explode(".", $domain); $tld = strtolower(array_pop($domaintld)); But I am unsure on how to implement this into the code. Any help would be appreciated. Quote Link to comment https://forums.phpfreaks.com/topic/269374-whois-tld-string/ Share on other sites More sharing options...
Zane Posted October 12, 2012 Share Posted October 12, 2012 Since you want to capture the input of a dot (period) on-the-fly / live it is not considered a server side script. In other words.. PHP would have nothing to do with capturing the dot character as they type. Javascript is what you are looking for ... and jQuery is the best possible framework that I know of to implement your Javascript. Here is an example to get you started http://api.jquery.com/keypress/ Quote Link to comment https://forums.phpfreaks.com/topic/269374-whois-tld-string/#findComment-1384683 Share on other sites More sharing options...
verror Posted October 12, 2012 Author Share Posted October 12, 2012 Thanks for the reply Zane. It's not exactly what I am looking for whoever, I more-so require the php script to read what has been entered into the text field after the user hits submit to then grab the domain extension that has been placed so that the script can then run the whois check. Quote Link to comment https://forums.phpfreaks.com/topic/269374-whois-tld-string/#findComment-1384685 Share on other sites More sharing options...
JonnoTheDev Posted October 12, 2012 Share Posted October 12, 2012 (edited) Thats simple <?php function get_tld($domain) { $parts = parse_url($domain); if(!isset($parts['path'])) { return FALSE; } $domain = $parts['path']; return trim(substr($domain, strpos($domain, '.', 0) + 1, strlen($domain))); } echo get_tld('google.com') . '<br />'; echo get_tld('google.co.uk') . '<br />'; echo get_tld('foobar.uk.com') . '<br />'; // this one is bad echo get_tld('http://www.google.es'); ?> Edited October 12, 2012 by neil.johnson Quote Link to comment https://forums.phpfreaks.com/topic/269374-whois-tld-string/#findComment-1384753 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.