PHP - 从主机名中检索 IP
PHP - Retrieving IPs from host names
我正在从 table 字段中检索值并向其附加一个字符串以获取主机名列表。然后我想遍历所有主机名和 return 每个主机的 IP。
以下代码获取我的主机名:
$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;
}
以上代码可以正常工作,但我不确定如何检索每个主机名的 IP。我一直在尝试 gethostbyname 但无法使其正常工作。我知道我必须遍历主机名值。我会使用 foreach 循环吗?我已经尝试过了,但无法正常工作。有人可以给我一些指示吗?
我尝试了以下方法,但 return 没有任何效果:
$host_name_ip = $host_name;
foreach ($host_name_ip as $name) {
$ip = gethostbyname($name);
echo '<li>' . $ip. '</li>';
}
我也试过这个……还是不行:
foreach($host_name as $url) {
$ip = gethostbyname(trim($url));
}
echo $ip;
谢谢。 :)
您正在覆盖初始循环中 $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>';
}
我正在从 table 字段中检索值并向其附加一个字符串以获取主机名列表。然后我想遍历所有主机名和 return 每个主机的 IP。
以下代码获取我的主机名:
$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;
}
以上代码可以正常工作,但我不确定如何检索每个主机名的 IP。我一直在尝试 gethostbyname 但无法使其正常工作。我知道我必须遍历主机名值。我会使用 foreach 循环吗?我已经尝试过了,但无法正常工作。有人可以给我一些指示吗?
我尝试了以下方法,但 return 没有任何效果:
$host_name_ip = $host_name;
foreach ($host_name_ip as $name) {
$ip = gethostbyname($name);
echo '<li>' . $ip. '</li>';
}
我也试过这个……还是不行:
foreach($host_name as $url) {
$ip = gethostbyname(trim($url));
}
echo $ip;
谢谢。 :)
您正在覆盖初始循环中 $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>';
}