PHP-从主机名检索IP
我正在从一个表字段中检索值,并向其追加一个字符串以获得主机名列表。然后,我希望遍历所有主机名并返回每个主机的IP 以下代码获取我的主机名:PHP-从主机名检索IP,php,ip,host,gethostbyname,Php,Ip,Host,Gethostbyname,我正在从一个表字段中检索值,并向其追加一个字符串以获得主机名列表。然后,我希望遍历所有主机名并返回每个主机的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_fe
$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循环吗?我已经试过了,但没法用。谁能给我一些指点吗
我尝试了以下操作,但没有返回任何结果:
$host_name_ip = $host_name;
foreach ($host_name_ip as $name) {
$ip = gethostbyname($name);
echo '<li>' . $ip. '</li>';
}
谢谢。:) 您正在覆盖初始循环中的
$host\u 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>';
}
foreach($host\u name\u ip as$name){
$ip=gethostbyname($name);
echo“”.$name.”位于地址“$ip”。 ”;
}
您甚至不需要将名称存储在数组中。只要在while循环中做你需要的一切
while ($r = mysql_fetch_array($q)) {
$ip = gethostbyname($r['col1']. ".zzz");
echo '<li>' . $r['col1']. '.zzz' . ' is at address ' . $ip. '</li>';
}
while($r=mysql\u fetch\u数组($q)){
$ip=gethostbyname($r['col1'].“.zzz”);
回音“”。$r['col1']..zzz.”位于地址“$ip”。 ”;
}
您正在覆盖初始循环中的$host\u 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>';
}
foreach($host\u name\u ip as$name){
$ip=gethostbyname($name);
echo“”.$name.”位于地址“$ip”。 ”;
}
您甚至不需要将名称存储在数组中。只要在while循环中做你需要的一切
while ($r = mysql_fetch_array($q)) {
$ip = gethostbyname($r['col1']. ".zzz");
echo '<li>' . $r['col1']. '.zzz' . ' is at address ' . $ip. '</li>';
}
while($r=mysql\u fetch\u数组($q)){
$ip=gethostbyname($r['col1'].“.zzz”);
回音“”。$r['col1']..zzz.”位于地址“$ip”。 ”;
}
谢谢。现在它将返回值到页面,但返回主机名而不是IP。数据库中的col1
列中有什么内容?如果是主机名,请删除我答案中=左侧的]
后面的所有内容(当然保留;
)。col1中每行有5个字母变量。在“zzz”后面加上我的主机名。(zzz只是一个示例)好的,然后删除。“
在.zzz
之后。你不再需要/想要它了。我仍然有一些问题。它会返回我想要的IP,但我希望能够将每个主机名加上每个对应的IP打印到页面上。我好像没法让它工作。在我删除了“.”之后,它将不会打印主机名,正如您上次评论中建议的那样。此外,当ip显示在页面上时,每个ip前面都会显示单词“Array”。我想看“主机名-IP”,但现在我只看到了“Array111.111.11.11”,例如。谢谢。现在它将返回值到页面,但返回主机名而不是IP。数据库中的col1
列中有什么内容?如果是主机名,请删除我答案中=左侧的]
后面的所有内容(当然保留;
)。col1中每行有5个字母变量。在“zzz”后面加上我的主机名。(zzz只是一个示例)好的,然后删除。“
在.zzz
之后。你不再需要/想要它了。我仍然有一些问题。它会返回我想要的IP,但我希望能够将每个主机名加上每个对应的IP打印到页面上。我好像没法让它工作。在我删除了“.”之后,它将不会打印主机名,正如您上次评论中建议的那样。此外,当ip显示在页面上时,每个ip前面都会显示单词“Array”。我希望看到“主机名-IP”,但现在我只看到“Array111.111.11.11”,例如。