Heim > Backend-Entwicklung > PHP-Tutorial > php 实现dns域名查询的方法详解(图文)

php 实现dns域名查询的方法详解(图文)

WBOY
Freigeben: 2016-07-25 08:57:02
Original
2928 Leute haben es durchsucht
本文介绍下,用php实现的一段查询dns域名信息的代码,有需要的朋友参考下。

在php中与域名相关的操作,一般会用到二个函数,它们分别是:gethostbyname() 与gethostbyaddr()。

一,IP地址查询 gethostbyname()函数,可以用来查找一个给定的域名的IP地址。 gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针。

string gethostbyname(string hostname) 参数:主机名,不需要http://,例如:bbs.it-home.org。 本函数可返回某个机器名称 (Domain Name) 的 IP 网址 (IP Address)。若执行失败,则返回原来的机器名称。

二,域名查询

gethostbyaddr 返回机器名称。

语法: string gethostbyaddr(string ip_address);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数可返回某个 IP 网址的机器名称 (Domain Name)。若执行失败,则返回原来的 IP 网址。

三,实例 以下代码实现域名IP地址与域名查询,是个不错的例子。

<?php 
// dnslookupip.php - DNS/IP Address Lookup 

// Page title 
$pagetitle        = 'PHP域名查询程序'; 

// Prompts 
$prompt_ip        = 'IP Address'; 
$prompt_dn        = 'Domain Name'; 

// Messages 
$lookupfail        = '<span style="color:red;">* lookup failed *</span>'; 

// Get submitted host/domain name 
$dn    = isset($_REQUEST['dn']) ? $_REQUEST['dn'] : ''; 
if ($dn == $prompt_dn) 
{ 
    $dn = ''; 
} 

// Get submitted ip address 
$ip    = isset($_REQUEST['ip']) ? $_REQUEST['ip'] : ''; 
if ($ip == $prompt_ip) 
{ 
    $ip = ''; 
} 

// Check if host/domain name specified 
if ($dn) 
{ 
    // Domain name specified; IP address lookup request 
    if ($dn == 'me') 
    { 
        $ip = $_SERVER['REMOTE_ADDR']; 
    } 
    else 
    { 
        // Lookup IP address by domain/host name 
        $ip = @gethostbyname($dn); 
        if ($ip == $dn) 
        { 
            $ip = $lookupfail; 
        } 
    } 
    $message = $prompt_dn.' '.$dn.' :: '.$prompt_ip.' '.$ip; 
} 
// Check if IP address specified 
else if ($ip) 
{ 
    // Lookup domain/host name by IP address     
    $dn = @gethostbyaddr($ip); 
    // Check lookup 
    if ($dn == $ip) 
    { 
        // IP address invalid or domain name not found 
        $dn = $lookupfail; 
    } 
    $message = $prompt_ip.' '.$ip.' :: '.$prompt_dn.' '.$dn; 
} 
else 
{ 
    $message = $prompt_dn.' '.$_SERVER['HTTP_HOST'] 
        .' :: '.$prompt_ip.' '.$_SERVER['SERVER_ADDR']; 
} 
?> 
<html> 
<head> 
<title><?php echo $pagetitle;?></title> 
</head> 
<body style="background-color:#cfcfcf;font-family:Arial;sans-serif;font-size:12px;"> 
<h3 style="font-size:13px;margin-bottom:0px;"><?php echo $pagetitle;?></h3> 
<hr /> 
<p style="margin-top:4px;margin-bottom:4px;font-size:12px;"> 
<?php echo $message;?> 
</p> 
<form style="margin-top:4px;margin-bottom:4px;"> 
<input style="font-size:12px;" type="text" name="dn" 
    value="<?php echo $prompt_dn;?>" size="30" /> 
<input style="font-size:12px;" type="text" name="ip"  
    value="<?php echo $prompt_ip;?>" size="15" />  
<input style="font-size:12px;" type="submit" value="Lookup" /> 
</form> 
<hr /> 
<p style="margin:0px;font-size:9px;color:#666666;"> 
Copyright &#169; 2003-<?php echo date('Y');?> 
 by 程序员之家,欢迎您! 
</p> 
</body> 
</html> 
Nach dem Login kopieren

以上代码,图示: dns域名查询代码 您可能感兴趣的文章: PHP获取域名的几个全局变量 php 从url中获取域名的实例代码 php获取站点的来路域名的方法 探讨:PHP获取域名及域名IP地址的方法 php获取URL中domain域名的代码一例 PHP正则匹配获取URL中域名的代码 PHP获取当前网址及域名的代码 php正则表达式匹配URL中的域名 PHP调用万网接口实现域名查询的功能



Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage