域名注册笔记

来源:互联网 发布:结婚看日子软件 编辑:程序博客网 时间:2024/04/24 12:48

fsockopen函数

函数:fsockopen()

fsockopen

打开网络的 Socket 链接。

语法: int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

返回值: 整数

函数种类: 网络系统

 

  内容说明

目前这个函数提供二个 Socket 资料流界面,分别为 Internet 用的 AF_INET 及 Unix 用的 AF_UNIX。当在 Internet 情形下使用时,参数 hostname 及 port 分别代表网址及埠号。在 UNIX 情形可做 IPC,hostname 参数表示到 socket 的路径,port 配置为 0。可省略的 timeout 选项表示多久没有连上就中断。在使用本函数之后会返回文件指针,供文件函数使用,包括 fgets()fgetss()fputs()fclose()feof()。参数 errno 及 errstr 也是可省略的,主要当做错误处理使用。使用本函数,会使用搁置模式 (blocking mode) 处理,可用 set_socket_blocking() 转换成无搁置模式。

 

  使用范例

本例用来模拟成 HTTP 连接。
<?php
$fp 
fsockopen("php.wilson.gs"80, &$errno, &$errstr10);
if(!
$fp) {
        echo 
"$errstr ($errno)<br>/n";
} else {
        
fputs($fp,"GET / HTTP/1.0/nHost: php.wilson.gs/n/n");
        while(!
feof($fp)) {
                echo 
fgets($fp,128);
        }
        
fclose($fp);
}
?>

 

域名判断的正则式:

^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$

别人的代码(未验证)

 <?
 if ($domain)
        {
        $fp = fsockopen( "rs.internic.net", 43, &$errno, &$errstr, 10);
        if (!$fp)
    {
        echo  "$errstr ($errno)<br/>/n";
        }
        else
        {
        fputs($fp, "$domain/r/n");
        while(!feof($fp))
                {
                $buf = fgets($fp,128);
                if (ereg( "Whois Server:", $buf))
                        {
                        $server = str_replace( "Whois Server: ",  "", $buf);
                        $server = trim($server);
                        }
                }
        fclose($fp);
        }
        if ($server)
                {
                echo  "<B>$domain 的注册服务器是 $server:</B><BR>";
                echo  "<PRE>";
                $fp = fsockopen($server, 43, &$errno, &$errstr, 10);
                if(!$fp)
                        {
                        echo  "不能连接到服务器 $server 的43端口./n";
                        echo  "$errstr ($errno)<br/>/n";
                        }
                else
                       {
                        fputs($fp, "$domain/r/n");
                        while(!feof($fp))
                                {
                                echo fgets($fp,128);
                                }
                        fclose($fp);
                       }
                }
        else    {
                echo( "<b>$domain 没有注册。</b><BR>");
                }
        echo ( "</PRE><BR>");
        }
 ?>
 <FORM ACTION=" <?PHP echo($PHP_SELF); ?>" METHOD="post"> 只能查询.com,.net和.org的域名50 <br/>输入域名:<INPUT TYPE="text" NAME="domain" SIZE="30" MAXLENGTH="100">
  <INPUT TYPE=submit VALUE="查 询">
 </FORM>

思路编一中间页面给请求给某个提供服务的网站,然后截取其结果.

 
原创粉丝点击