php爆炸多个MX记录和错误的IP

时间:2017-10-21 15:48:59

标签: php dig

我的代码部分有问题。我创建了一个挖掘,但现在我正在尝试直接在MX记录上添加A记录(例如MX记录 - > IP地址)。

我有这个代码用于从我找到的MX中找到A记录:

$comm = 'dig @' . $ns . ' MX ' . $domain . ' +short';
$mx_dns = shell_exec ($comm);
$mx = explode(' ', $mx_dns); //explode to take only the MX and not the priority
$mx2 = substr($mx[1],0,-1); //removing dot (.) from MX

$comm = 'dig A ' . $mx2 . ' @' . $ns . ' +short';
$ip_mx = shell_exec ($comm);

print_r($mx);

if ($ip_mx == null)
{
    $comm = 'dig A ' . $mx . ' @8.8.8.8 +short';
    $ip_mx2 = preg_split('/\s+/', shell_exec ($comm)); //only take first IP
    $ip_mx = $ip_mx2[0];
}

在上面的代码中,我要求域名的DNS。如果DNS没有响应A记录,我想问谷歌(8.8.8.8)。

在print_r中,我发现如果一个域有多个MX记录(例如google.com),一切都会崩溃。如果域只有一个MX,则挖掘工作正常。

问题是,我的爆炸功能适用于一个MX。如果有多个MX,我拥有的表格也具有下一个优先级(例如,第二个MX的优先级)。

如果我尝试解决此问题,则脚本无法找到具有一个MX的所有域的IP地址。

你能帮我解决这个问题吗?

非常感谢你们所有人。

0 个答案:

没有答案