所以我可能很愚蠢,这可能非常简单。我有一个包含大约 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>';
}
?>
如果您的最终目标是获取 IP 地址,请查看gethostbyname()
:
$names = file('sites.txt');
foreach ($names as $name) {
$ip = gethostbyname($name);
echo '<li>' . $ip. '</li>';
}
echo $ip;
gethostbyname() 将返回您输入的任何域的 IP 地址。 http://php.net/manual/en/function.gethostbyname.php
@BrandonBraner这正是我也想做的!之所以只有列表中的最后一个条目有效,是因为 PHP 正确读取了这些行,但在末尾附加了一个字符。它不会在最后一行这样做 - 不要问我为什么。也许是新行字符。
要绕过它,请使用 substr:
$names = file('mysites.txt');
foreach ($names as $name) {
$mydomain = substr($name, 0, -1);
$ip = gethostbyname($mydomain);
echo '<li>' . $ip . '</li>';
}
为我做了这个把戏。然后,您需要做的就是在域列表中添加最后一行空。