【问题标题】:Why convert IP Address to Hostname by used "gethostbyaddr" but don't work? [closed]为什么使用“gethostbyaddr”将IP地址转换为主机名但不起作用? [关闭]
【发布时间】:2014-08-21 09:48:35
【问题描述】:

我尝试使用“gethostbyaddr”将 IP 地址转换为主机名,但不起作用。我使用作为日志文件的 file.text 来分析用户使用了很多或更少的页面。所以我尝试删减使用数组的句子。这是我的代码。

$file=fopen("log.txt","r");             

while (!feof($file)) {
    $buffer = fgets($file, 4096);                    

    $text= explode(" ",$buffer,10);



    $text_2=@$text[1];  
    $ip=substr($text_2,1,11);       
    $ip2=gethostbyaddr($ip);

    echo"INSERT INTO `log` VALUES ('$ip2');"."<br>";        //Show results

    //echo"<br>";           //New line
}

fclose($file);                              

谢谢

【问题讨论】:

  • 你有什么错误吗?您的代码可能有效。
  • 我想将 IP 地址转换为主机,例如 '61.47.47.85' 转换为 www.hostname.com 但即使我使用 'gethostbyaddr' 它仍然显示 IP 地址。谢谢
  • 并非每个 IP 地址都设置为反向查找主机名。您是否有迹象表明它应该起作用?
  • 不,我没有。你能建议另一种方法来得到这个。谢谢

标签: php html mysql css sql


【解决方案1】:

这意味着 gethostbyaddr 失败。

不是因为你的输入,在php文档中找解释

http://php.net/manual/en/function.gethostbyaddr.php

“成功时返回主机名,失败时返回未修改的 ip_address,输入格式错误时返回 FALSE。”

【讨论】:

  • 谢谢。我认为因为不是每个 IP 地址都设置为像“deceze”所说的那样反向。
猜你喜欢
  • 2012-05-20
  • 2014-04-12
  • 2011-09-15
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 2014-11-12
  • 2014-11-16
  • 1970-01-01
相关资源
最近更新 更多