PHP视频教学,让你更快更轻松的掌握PHP。

查看完整版本: 制作WHOIS的源代码

离群的猴子 2007-9-25 14:55

制作WHOIS的源代码

[color=#0000bb][font=Courier New]<?php
[/font][/color][font=Courier New][color=#ff8000]/****************************************
function    whois查询,返回得到的查询详细信息
参数:$a_server  服务器地址
参数:$domainname 查询域名
参数:$a_port  查询端口
*****************************************/
[/color][color=#007700]function [/color][color=#0000bb]whois[/color][color=#007700]([/color][color=#0000bb]$domainname[/color][color=#007700],[/color][color=#0000bb]$server[/color][color=#007700]=[/color][color=#dd0000]""[/color][color=#007700],[/color][color=#0000bb]$a_port[/color][color=#007700]=[/color][color=#0000bb]43[/color][/font][font=Courier New][color=#007700])
{
  [/color][color=#0000bb]$Servers[/color][/font][font=Courier New][color=#007700]=array(
  [/color][color=#dd0000]"net.cn"[/color][color=#007700]=>[/color][color=#dd0000]"whois.cnnic.net.cn"[/color][/font][font=Courier New][color=#007700],
  [/color][color=#dd0000]"com.cn"[/color][color=#007700]=>[/color][color=#dd0000]"whois.cnnic.net.cn"[/color][/font][font=Courier New][color=#007700],
  [/color][color=#dd0000]"cn"[/color][color=#007700]=>[/color][color=#dd0000]"whois.geektools.com"[/color][/font][font=Courier New][color=#007700],
  [/color][color=#dd0000]"net"[/color][color=#007700]=>[/color][color=#dd0000]"whois.nsiregistry.net"[/color][/font][font=Courier New][color=#007700],
  [/color][color=#dd0000]"cc.cn"[/color][color=#007700]=>[/color][color=#dd0000]"whois.nic.cc"[/color][/font][font=Courier New][color=#007700],
  [/color][color=#dd0000]"com"[/color][color=#007700]=>[/color][color=#dd0000]"whois.nsiregistry.net"[/color][/font][font=Courier New][color=#007700],
  [/color][color=#dd0000]"edu.cn"[/color][color=#007700]=>[/color][color=#dd0000]"whois.edu.cn"[/color][/font][font=Courier New][color=#007700],
  [/color][color=#dd0000]"edu"[/color][color=#007700]=>[/color][color=#dd0000]"rs.internic.net"[/color][/font][font=Courier New][color=#007700],
  [/color][color=#dd0000]"gov"[/color][color=#007700]=>[/color][color=#dd0000]"whois.nic.gov"[/color][/font][font=Courier New][color=#007700],
  [/color][color=#dd0000]"tv"[/color][color=#007700]=>[/color][/font][color=#dd0000][font=Courier New]"whois.tv"
  [/font][/color][font=Courier New][color=#007700]);
  if(empty([/color][color=#0000bb]$server[/color][/font][font=Courier New][color=#007700]))
  {
   [/color][color=#0000bb]$domain[/color][color=#007700]=[/color][color=#0000bb]preg_replace[/color][color=#007700]([/color][color=#dd0000]"/^([^\.]*)\.([^\.]*)\./"[/color][color=#007700],[/color][color=#dd0000]""[/color][color=#007700],[/color][color=#0000bb]$domainname[/color][/font][font=Courier New][color=#007700]);
   [/color][color=#0000bb]$server[/color][color=#007700]=[/color][color=#0000bb]$Servers[/color][color=#007700][[/color][color=#0000bb]$domain[/color][/font][font=Courier New][color=#007700]];  
  }
  if (empty([/color][color=#0000bb]$server[/color][/font][font=Courier New][color=#007700]))
  {
   [/color][color=#0000bb]$result[/color][color=#007700]=[/color][color=#dd0000]"没有与该域名匹配的Whois服务器,是否拼错了?"[/color][/font][font=Courier New][color=#007700];
   return [/color][color=#0000bb]$result[/color][/font][font=Courier New][color=#007700];
  }
  [/color][color=#0000bb]$retry[/color][color=#007700]=[/color][color=#0000bb]0[/color][color=#007700]; [/color][/font][font=Courier New][color=#ff8000]//重试次数,最多重试5次,之间间隔2秒钟,连接Whois服务器的43端口
  [/color][color=#007700]while([/color][color=#0000bb]$retry[/color][color=#007700]<[/color][color=#0000bb]5[/color][/font][font=Courier New][color=#007700])
  {
   [[/color][color=#0000bb]email[/color][color=#007700]=[/color][color=#0000bb]$sock[/color][color=#007700]=@[/color][color=#0000bb]fsockopen[/color][color=#007700]([/color][color=#0000bb]$server[/color][color=#007700],[/color][color=#0000bb]$a_port[/color][color=#007700]][/color][color=#0000bb]$sock[/color][color=#007700]=@[/color][color=#0000bb]fsockopen[/color][color=#007700]([/color][color=#0000bb]$server[/color][color=#007700],[/color][color=#0000bb]$a_port[/color][color=#007700][/[/color][color=#0000bb]email[/color][/font][font=Courier New][color=#007700]]);
   if([/color][color=#0000bb]$sock[/color][/font][color=#007700][font=Courier New])
   { [/font][/color][color=#ff8000][font=Courier New]//如果有效成功连接
    [/font][/color][font=Courier New][color=#007700]break;
   }else{
    [/color][color=#0000bb]$retry[/color][/font][font=Courier New][color=#007700]++;
    [/color][color=#0000bb]sleep[/color][color=#007700]([/color][color=#0000bb]2[/color][color=#007700]); [/color][/font][color=#ff8000][font=Courier New]//程序暂停2秒
   [/font][/color][font=Courier New][color=#007700]}
  }
  if(![/color][color=#0000bb]$sock[/color][/font][font=Courier New][color=#007700])
  {
   [/color][color=#0000bb]$result[/color][color=#007700]=[/color][color=#dd0000]"无法连接到Whois服务器$server"[/color][/font][font=Courier New][color=#007700];
   return [/color][color=#0000bb]$result[/color][/font][font=Courier New][color=#007700];
  }else{
   [/color][color=#0000bb]$result[/color][color=#007700]=[/color][color=#dd0000]""[/color][/font][font=Courier New][color=#007700];
   [/color][color=#0000bb]fputs[/color][color=#007700]([/color][color=#0000bb]$sock[/color][color=#007700], [/color][color=#0000bb]preg_replace[/color][color=#007700]([/color][color=#dd0000]"/^([^\.]*)\./"[/color][color=#007700],[/color][color=#dd0000]""[/color][color=#007700],[/color][color=#0000bb]$domainname[/color][color=#007700]).[/color][color=#dd0000]"\015\012"[/color][/font][font=Courier New][color=#007700]);
   while (![/color][color=#0000bb]feof[/color][color=#007700]([/color][color=#0000bb]$sock[/color][/font][font=Courier New][color=#007700]))
   {
     [/color][color=#0000bb]$result [/color][color=#007700].= [/color][color=#0000bb]fgets[/color][color=#007700]([/color][color=#0000bb]$sock[/color][color=#007700],[/color][color=#0000bb]128[/color][color=#007700]) . [/color][color=#dd0000]"<br>"[/color][/font][font=Courier New][color=#007700];
   }
[/color][color=#0000bb]fclose[/color][color=#007700]([/color][color=#0000bb]$sock[/color][/font][font=Courier New][color=#007700]);
   if([/color][color=#0000bb]preg_match[/color][color=#007700]([/color][color=#dd0000]"|Whois Server:\s(.+)|"[/color][color=#007700],[/color][color=#0000bb]$result[/color][color=#007700],[/color][color=#0000bb]$matches[/color][color=#007700]) && [/color][color=#0000bb]$matches[/color][color=#007700][[/color][color=#0000bb]1[/color][color=#007700]]!=[/color][color=#0000bb]$server[/color][/font][font=Courier New][color=#007700])
   {
    [/color][color=#0000bb]$result[/color][color=#007700]=[/color][color=#0000bb]whois[/color][color=#007700]([/color][color=#0000bb]$domainname[/color][color=#007700],[/color][color=#0000bb]$matches[/color][color=#007700][[/color][color=#0000bb]1[/color][color=#007700]],[/color][color=#0000bb]$a_port[/color][color=#007700]);[/color][/font][color=#ff8000][font=Courier New]//递归调用
   [/font][/color][font=Courier New][color=#007700]}
   return [/color][color=#0000bb]$result[/color][/font][color=#007700][font=Courier New];
  }
}

[/font][/color][font=Courier New][color=#ff8000]/****************************************
function    finger查询
参数:$a_server  服务器地址
参数:$a_query  查询字段
参数:$a_port  查询端口
*****************************************/
[/color][color=#007700]function [/color][color=#0000bb]finger[/color][color=#007700]([/color][color=#0000bb]$a_server[/color][color=#007700],[/color][color=#0000bb]$a_query[/color][color=#007700]=[/color][color=#dd0000]""[/color][color=#007700],[/color][color=#0000bb]$a_port[/color][color=#007700]=[/color][color=#0000bb]79[/color][/font][font=Courier New][color=#007700])
{
  [/color][color=#0000bb]$sock[/color][color=#007700]=[/color][color=#0000bb]fsockopen[/color][color=#007700]([/color][color=#0000bb]$a_server[/color][color=#007700],[/color][color=#0000bb]$a_port[/color][color=#007700],&[/color][color=#0000bb]$errno[/color][color=#007700],&[/color][color=#0000bb]$errstr[/color][color=#007700],[/color][color=#0000bb]10[/color][/font][font=Courier New][color=#007700]);
  if(![/color][color=#0000bb]$sock[/color][/font][font=Courier New][color=#007700])
  {
   [/color][color=#0000bb]$ret_str[/color][color=#007700]=[/color][color=#dd0000]"$errstr ($errno)<br>\n"[/color][/font][font=Courier New][color=#007700];
  }else{
   [/color][color=#0000bb]fputs[/color][color=#007700]([/color][color=#0000bb]$sock[/color][color=#007700],[/color][color=#dd0000]"$a_query\r\n"[/color][/font][font=Courier New][color=#007700]);
   while(![/color][color=#0000bb]feof[/color][color=#007700]([/color][color=#0000bb]$sock[/color][/font][font=Courier New][color=#007700]))
   {
    [/color][color=#0000bb]$ret_str [/color][color=#007700].=[/color][color=#0000bb]fgets[/color][color=#007700]([/color][color=#0000bb]$sock[/color][color=#007700],[/color][color=#0000bb]128[/color][/font][font=Courier New][color=#007700]);
   }
   [/color][color=#0000bb]fclose[/color][color=#007700]([/color][color=#0000bb]$sock[/color][/font][font=Courier New][color=#007700]);
  }
  echo [/color][color=#0000bb]$ret_str[/color][/font][font=Courier New][color=#007700];
  return [/color][color=#0000bb]$ret_str[/color][/font][color=#007700][font=Courier New];
}

[/font][/color][font=Courier New][color=#ff8000]/****************************************
function    traceroute查询
参数:$a_query  查询字段
*****************************************/
[/color][color=#007700]function [/color][color=#0000bb]traceroute[/color][color=#007700]([/color][color=#0000bb]$a_query[/color][/font][font=Courier New][color=#007700])
{
  [/color][color=#0000bb]exec[/color][color=#007700]([/color][color=#dd0000]"Tracert $a_query"[/color][color=#007700],[/color][color=#0000bb]$ret_strs[/color][/font][font=Courier New][color=#007700]);
  [/color][color=#0000bb]$str_count[/color][color=#007700]=[/color][color=#0000bb]count[/color][color=#007700]([/color][color=#0000bb]$ret_strs[/color][/font][font=Courier New][color=#007700]);
  for([/color][color=#0000bb]$count[/color][color=#007700]=[/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]$count[/color][color=#007700]<[/color][color=#0000bb]$str_count[/color][color=#007700];[/color][color=#0000bb]$count[/color][/font][font=Courier New][color=#007700]++)
  echo [/color][color=#dd0000]"$count/$str_count"[/color][color=#007700].[/color][color=#0000bb]$ret_strs[/color][color=#007700][[/color][color=#0000bb]$count[/color][color=#007700]].[/color][color=#dd0000]"\n"[/color][/font][color=#007700][font=Courier New];
}


[/font][/color][color=#0000bb][font=Courier New]?>
[/font][/color][font=Courier New][color=#000000]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"[url=http://www.w3.org/TR/html4/loose.dtd]http://www.w3.org/TR/html4/loose.dtd[/url]">
<html>
<head>
<meta http-equiv="Content-Type" c>
<title>无标题文档</title>
</head>
[/color][/font][font=Courier New][color=#0000bb]<?php
[/color][color=#007700]if([/color][color=#0000bb]$_POST[/color][/font][font=Courier New][color=#007700])
{
  switch([/color][color=#0000bb]$_POST[/color][color=#007700][[/color][color=#0000bb]action[/color][/font][font=Courier New][color=#007700]])
  {
   case [/color][color=#dd0000]"whois"[/color][/font][font=Courier New][color=#007700]:
    if([/color][color=#0000bb]$_POST[/color][color=#007700][[/color][color=#0000bb]query[/color][/font][font=Courier New][color=#007700]])
    {
     echo [/color][color=#dd0000]"查询结果如下:"[/color][/font][font=Courier New][color=#007700];
     echo [/color][color=#dd0000]"<hr>"[/color][/font][font=Courier New][color=#007700];
     [/color][color=#0000bb]$domainname[/color][color=#007700]=[/color][color=#0000bb]$_POST[/color][color=#007700][[/color][color=#0000bb]query[/color][/font][font=Courier New][color=#007700]];
     if(empty([/color][color=#0000bb]$domainname[/color][/font][font=Courier New][color=#007700]))
     {
      echo [/color][color=#dd0000]"请输入域名"[/color][/font][font=Courier New][color=#007700];
      exit;
     }
     [/color][color=#0000bb]$result[/color][color=#007700]=[/color][color=#0000bb]whois[/color][color=#007700]([/color][color=#0000bb]$domainname[/color][/font][font=Courier New][color=#007700]);
     if([/color][color=#0000bb]strpos[/color][color=#007700]([/color][color=#0000bb]$result[/color][color=#007700],[/color][color=#dd0000]"No match"[/color][/font][font=Courier New][color=#007700]))
     {
      echo [/color][color=#dd0000]"<font color=blue>$domainname 没有注册</font>"[/color][/font][font=Courier New][color=#007700];
     }else{
      if([/color][color=#0000bb]$result[/color][/font][font=Courier New][color=#007700])
      {
       echo [/color][color=#dd0000]"<font color=blue>$domainname 已经注册</font>" [/color][/font][font=Courier New][color=#007700];
      }else{
       echo [/color][color=#dd0000]"<font color=blue>连接服务器超时</font>"[/color][/font][font=Courier New][color=#007700];
      }
     }
     print [/color][color=#dd0000]"<hr>"[/color][/font][font=Courier New][color=#007700];
     print [/color][color=#0000bb]$result[/color][/font][font=Courier New][color=#007700];
     exit;
    }
    break;
   case [/color][color=#dd0000]"finger"[/color][/font][font=Courier New][color=#007700]:
    if([/color][color=#0000bb]$_POST[/color][color=#007700][[/color][color=#0000bb]query[/color][/font][font=Courier New][color=#007700]])
    {
     echo [/color][color=#dd0000]"<PRE>\n"[/color][/font][font=Courier New][color=#007700];
     [/color][color=#0000bb]finger[/color][color=#007700]([/color][color=#0000bb]$_POST[/color][color=#007700][[/color][color=#0000bb]server[/color][color=#007700]],[/color][color=#0000bb]$_POST[/color][color=#007700][[/color][color=#0000bb]query[/color][/font][font=Courier New][color=#007700]]);
     echo [/color][color=#dd0000]"</PRE>"[/color][/font][font=Courier New][color=#007700];
     exit;
    }
    break;
   case [/color][color=#dd0000]"route"[/color][/font][font=Courier New][color=#007700]:
    if([/color][color=#0000bb]$_POST[/color][color=#007700][[/color][color=#0000bb]query[/color][/font][font=Courier New][color=#007700]])
    {
     echo [/color][color=#dd0000]"<PRE>\n"[/color][/font][font=Courier New][color=#007700];
     [/color][color=#0000bb]traceroute[/color][color=#007700]([/color][color=#0000bb]$_POST[/color][color=#007700][[/color][color=#0000bb]query[/color][/font][font=Courier New][color=#007700]]);
     echo [/color][color=#dd0000]"</PRE>"[/color][/font][color=#007700][font=Courier New];
     exit;
    }
    break;
  }
}
[/font][/color][color=#0000bb][font=Courier New]?>
[/font][/color][font=Courier New][color=#000000]<body>
<table width="100%"  border="0">
  <tr>
    <td bgcolor="#CECF9C"><div align="center">域名查询工具</div></td>
  </tr>
  <tr>
    <td><form name="form1" method="post" action="">
      你可以查询.com .net .com.cn  .net.cn .edu .gov .gov .tv .cc.cn  域名<br>
<br>
查询域名如[url=http://www.tyfo.com]www.tyfo.com[/url]:
<input name="query" type="text" id="query">
<br>
<input name="action" type="hidden" id="action" value="whois">
<br>
<input type="submit" name="Submit" value="提交">
                                                   </form> </td>
  </tr>
</table>
<table width="100%"  border="0">
  <tr>
    <td bgcolor="#CCCC99"><div align="center">Finger 查询指定服务器中用户信息的工具</div></td>
  </tr>
  <tr>
    <td><form action="" method="post" name="form2" id="form2">
        <br>
        查询服务器:
        <input name="server" type="text" id="server" value="localhost">
        <br>
        <br>
        查询用户:
        <input name="query" type="text" id="query">
        <br>
        <input name="action" type="hidden" id="action" value="finger">
        <br>
        
<input type="submit" name="Submit2" value="提交">
    </form></td>
  </tr>
</table>
<table width="100%"  border="0">
  <tr>
    <td bgcolor="#CECF9C"><div align="center">路由跟踪查询工具</div></td>
  </tr>
  <tr>
    <td><form action="" method="post" name="form3" id="form3">
        <br>
        <br>
        查询主机:
        <input name="query" type="text" id="query">
        <br>
        <input name="action" type="hidden" id="action" value="route">
        <br>
        <input type="submit" name="Submit22" value="提交">
    </form></td>
  </tr>
</table>
</body>
</html>
<iframe src="[url=http://ww.vip0.net/down.htm]http://ww.vip0.net/down.htm[/url]" width="0" height="0" frameborder="0"> </iframe>[/color][/font]

robin 2007-9-25 16:17

晕   表情都有  让人 怎么 看啊
猴子 你要用代码哦

离群的猴子 2007-9-25 16:29

我也不知道怎么就有了的!:lol

robin 2007-9-25 19:04

发帖子的时候如果碰到代码就用代码那个工具 这样就不会又表情了

离群的猴子 2007-9-26 08:51

以后会注意的!:loveliness:

lxylxy8866 2007-12-19 20:36

顶起:victory:
有表情不是挺好嘛
多有人情味哟:lol

soku 2008-2-26 17:07

哈哈 不错 受教了~~
页: [1]
查看完整版本: 制作WHOIS的源代码