Php kullanarak 'whois' aracı taklit etmek için bir yolu var mı?

4 Cevap php

Ben whois benim sunucuda yüklü değil (görünüşte eserlerinde ama üzerinde hiçbir gerçek haber). Herkes olsa bunun işlevselliğini taklit etmek için bir yol biliyordum merak edildi. Ben bir url için bazı veri gönderme olurdu düşündüm ama ne, ya da nerede bilmiyorum.

Temelde Ben tam bir kayıp değilim, ve herhangi bir yardım ya da ben içine bakmak olabilir, hatta bir şey seviniriz.

4 Cevap

Sen PHP Whois API kullanabilirsiniz. Bu, tüm whois kayıtlarına erişim sağlayacak. Bu sayfanın alt kısmında bir bağlantı olduğunu işlevini kullanmak için a class. Emin o da dahil olun.

Eğer sisteminizde çalıştırmak için deneyebilirsiniz mesela sonra php exec kullanarak php çalıştırmak Eğer linux kullanıyorsanız ve / usr / bin / whois lib yüklü varsayarak

<?php exec("/usr/bin/whois $strDomain",$arrOutPut);?>

Bu php sunucu üzerinde exec işlevini kullanın ve komuta geçti argümanları doğrulamak için emin olun ... makine için çirkin sonunda olabilir izin yalnızca çalışacaktır.

Alternatif bir API kullanarak deneyebilirsiniz

  1. http://www.nott.org/blog/php-whois-script.html
  2. http://www.tevine.com/projects/whois/

Here's one I've written, bir süre önce (tüm whois sunucularını listeleyen olmadan) basit bir hile kullanıyor. Perl onu dönüştürülmüş, ve çok C # ve bir COM nesnesi de bulunuyor.

Bu etki registars bazı * &! $ Açgözlü ve arama için ödemek istediğiniz gibi tüm whois aramalarını yapmak, ya da özel tutmak değildir. Sayfasında bu konuda bilgi yok.

Update
Here's the code to save you downloading. I wrote it using PHP 3.x so some massaging for PHP5 might be needed:

class Whois
{
    /*
     * Optional parameter for the server to be used for the lookup.
     * If this is not set, an appropriate whois server for the domain name
     * specified is automagically found by the Whois class. 
     * @type string
     * @access public
     */
    var $whois_server;
    /*
     * The timeout, in seconds, for the lookup. Default is 30. 
     * @type integer
     * @access public
     */
    var $timeout = 30;

    /*
     * Returns a string, with new-lines (\n) converted to non-breaking spaces (&lt;BR&gt;),
     * with details for the domain specified by $domain. 
     * @access public
     * @param string $domain the domain to lookup, excluding http:// and www
     * @return string the results of the whois
     */
    function lookup($domain)
    {
    	$result = "";
    	$parts  = array();
    	$host   = "";

    	// .tv don't allow access to their whois
    	if (strstr($domain,".tv"))
    	{
    		$result = "'.tv' domain names require you to have an account to do whois searches.";
    	// New domains fix (half work, half don't)
    	} elseif (strstr($domain,".name") || strstr($domain,".pro") >0){
    		$result = ".name,.pro require you to have an account to do whois searches.";
    	} else{
    		if (empty($this->whois_server))
    		{
    			$parts    = explode(".",$domain);
    			$testhost = $parts[sizeof($parts)-1];
    			$whoisserver   = $testhost . ".whois-servers.net";
    			$this->host     = gethostbyname($whoisserver);
    			$this->host     = gethostbyaddr($this->host);

    			if ($this->host == $testhost)
    			{
    				$this->host = "whois.internic.net";
    			}
    			flush();
    		}
    		$whoisSocket = fsockopen($this->host,43, $errno, $errstr, $this->timeout);

    		if ($whoisSocket)
    		{
    			fputs($whoisSocket, $domain."\015\012");
    			while (!feof($whoisSocket))
    			{
    				$result .= fgets($whoisSocket,128) . "<br>";
    			}
    			fclose($whoisSocket);
    		}
    	}
    	return $result;
    }
}

Example usage

$whois = new Whois();
echo "<B>compaq.it</B><BR>";
echo $whois->lookup("compaq.it");
echo "<HR>";

Ayrıca bunun için Net_Whois pear package faydalanabilirler.

Yasal Uyarı: Bu paketin bir sürdürme değilim.