使用PHP's gethostbyname()检索IP地址


Retrieve IP addresses with PHP's gethostbyname()

使用下面的代码,我已经能够打开一个.csv文件与几个域名,然后我把它放在一个PHP数组和循环。在循环中,我调用返回每个域(gethostbyname())的IP地址的函数。

然而,当我执行此操作时,我只是得到域名回显给我。当我在单个域中(即不在循环中)使用此函数时,我得到所需的IP地址。

怎么了?是有某种内置限制还是我构建的阵列错误?

<?php
$urls = file('test.csv'); 
foreach($urls as $url){
    $ip = gethostbyname($url);
    echo $ip.'<br/>';
}
?>

file()将文件的内容作为数组返回,但还包括行尾的换行字符,因此很可能您正在尝试对google.com'n之类的东西进行查找。尝试使用

$urls = file('test.csv', FILE_IGNORE_NEW_LINES);

foreach($urls as $url) {
   $ip = gethostbyname(trim($url)); // note the use of trim()
}