使用PHP获取DNS管理员

使用PHP获取DNS管理员,php,dns,soa,Php,Dns,Soa,当查看时,您会得到一个“DNS管理员”。如何从php脚本请求此信息?Netcraft拥有格式良好的数据,它们很可能从DNS记录中提取这些数据。不幸的是,DNS记录本身并不是那么规则(或者不需要Netcraft) 你所做的听起来有点邪恶,但也许可以尝试使用whois这样的系统命令来搜索电子邮件地址 <?php $domain = 'cnn.com'; $results = shell_exec( "whois {$domain}" ); //parse results here ?>

当查看时,您会得到一个“DNS管理员”。如何从php脚本请求此信息?

Netcraft拥有格式良好的数据,它们很可能从DNS记录中提取这些数据。不幸的是,DNS记录本身并不是那么规则(或者不需要Netcraft)

你所做的听起来有点邪恶,但也许可以尝试使用whois这样的系统命令来搜索电子邮件地址

<?php 
$domain = 'cnn.com';
$results = shell_exec( "whois {$domain}" );
//parse results here
?>

d如果你想用php抓取内容,你的朋友就是你的朋友

下面是一个简单的用法示例:

<?php

$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,'http://example.com');
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);

if (empty($buffer))
{
    print "Unable to fetch data.";
}
else
{
    print $buffer;
}
?>

当然,您将需要解析获取的结果并提取所需的内容

希望有帮助,祝你好运


更新:不确定op是想从网页获取结果,还是直接从dns查询工具(dig、whois等)获取结果。如果我理解错误,此帖子将被删除。

最好的选择可能是直接获取dns记录:

<?php
$result = dns_get_record("example.com", DNS_SOA);
$admin = preg_replace('/\./', '@', $result[0]['rname'], 1); //need to replace the first dot with "@" because the rname is passed with dots and doesn't include "@"
echo $admin; //will output hostmaster@icann.org
?>

这是一个比我更好的答案。不知道有一个
dns\u get\u record
方法!我目前正在使用这样的解决方案,但是我担心我可以提取一封像some.email.company.com这样的电子邮件,它会翻译成some@email.company.com:/不确定此解决方案的可行性,但您可以尝试ping子域变体并检查状态代码,例如,如果email.company.com返回404,则尝试ping company.com如果返回200,则company.com为域和some.email是电子邮件帐户。只是一个想法。