所以我可能很蠢,这可能很简单。我有一个包含大约300个域名的文本文件。我不想ping他们手册所以我正在研究一个简单的小PHP脚本ping域名返回IP地址然后回显他们
我有一个文本文件中的域名我可以读取文件并输出姓名,但第二次我尝试ping它们所有我得到的是一个空白的列表
<?php
$names = file('sites.txt');
foreach ($names as $name) {
$testping = exec("ping $name");
echo '<li>' . $testping . '</li>';
}
?>
新代码* *
$names = file('sites.txt');
foreach ($names as $name) {
$ip = gethostbyname($name);
echo '<li>' . $ip . '</li>';
}
?>
答案 0 :(得分:6)
如果您的最终目标是让IP地址进入gethostbyname()
:
$names = file('sites.txt');
foreach ($names as $name) {
$ip = gethostbyname($name);
echo '<li>' . $ip. '</li>';
}
echo $ip;
答案 1 :(得分:1)
gethostbyname()将返回您输入的任何域的IP地址。 http://php.net/manual/en/function.gethostbyname.php
答案 2 :(得分:0)
@BrandonBraner 正是我想要做的!仅列表中的最后一个条目工作的原因是因为PHP正确读取了行,但在末尾附加了一个字符。最后一行不会这样做 - 不要问我为什么。也许这是新的角色。
要绕过它,请使用substr:
$names = file('mysites.txt');
foreach ($names as $name) {
$mydomain = substr($name, 0, -1);
$ip = gethostbyname($mydomain);
echo '<li>' . $ip . '</li>';
}
我的诀窍。您需要做的就是在域列表中添加一个空的最后一行。