2

我正在尝试通过 dns_get_record() 获取域的 dns 记录,但是当插入变量时该函数似乎不起作用..这是我的代码

<form action="" method="post">
     <input type="text" name="host" placeholder="Enter IP or Domain"/>
     <select name="dns">
          <option value="DNS_A" selected="selected">A</option>
               ....
          <option value="DNS_ANY">ANY</option>
     </select>
</form>
<?php
$host=$_POST['host'];
$dns=$_POST['dns'];
$type=end(explode('_',$dns));
if ($host==""){
     exit();
}
echo "Results for $host $type record<br />";
$result = dns_get_record($host, $dns);
echo "Result = ";
print_r($result);
?>

但如果我把

$result = dns_get_record($host, DNS_A);

代替

$result = dns_get_record($host, $dns);

它有效..帮助!

4

2 回答 2

3

这是因为您的 POST 返回一个文字字符串:“DNS_A”,如果您愿意的话。这与DNS_A不同,DNS_A 是一个常量,很可能包含一个整数。

你需要一个映射表。或者直接传递整数值。

于 2012-12-01T11:54:43.633 回答
3

DNS_A是值为 1 的常量,当您传递字符串“DNS_A”时,尝试通过传递常量值,使用$result = dns_get_record($host, constant($dns));

于 2012-12-01T11:55:53.167 回答