我正在从表字段中检索值,并向其附加字符串以获取主机名列表。然后,我想遍历所有主机名并为每个主机返回IP。
以下代码获取我的主机名:
.ms {display: none;}
以上代码可以正常工作,但是我不确定如何为每个主机名检索IP。我一直在尝试gethostbyname,但无法使其正常工作。我知道我必须遍历主机名值。我会使用foreach循环吗?我已经尝试过了,但无法正常工作。有人可以给我一些指示吗?
我尝试了以下操作,但未返回任何内容:
$sql = "select * from table order by col1 asc";
$q = mysql_query($sql) or die(mysql_error() ." " . $sql);
// Loop through table and append .zzz to each col1.
while ($r = mysql_fetch_array($q)) {
$host_name = $r['col1']. ".zzz" . " ";
//echo $host_name;
}
我也尝试过此操作……什么也没做
$host_name_ip = $host_name;
foreach ($host_name_ip as $name) {
$ip = gethostbyname($name);
echo '<li>' . $ip. '</li>';
}
谢谢。 :)
答案 0 :(得分:3)
您将在初始循环中覆盖$host_name
的值。将其更改为数组,您的foreach将可以使用。
while ($r = mysql_fetch_array($q)) {
$host_name[] = $r['col1']. ".zzz";
}
要在循环中打印主机名及其地址,请使用:
foreach ($host_name_ip as $name) {
$ip = gethostbyname($name);
echo '<li>' . $name . ' is at address ' . $ip. '</li>';
}
您甚至不需要将名称存储在数组中。只需在while循环中完成所有您需要的事情即可。
while ($r = mysql_fetch_array($q)) {
$ip = gethostbyname($r['col1']. ".zzz");
echo '<li>' . $r['col1']. '.zzz' . ' is at address ' . $ip. '</li>';
}