如何在数据库中存储用户计算机名?

时间:2014-08-11 07:13:21

标签: php mysql sql ip

我正在尝试将访客计算机名称存储在我的数据库中。我编写了以下代码,但它只保存了ip地址而不是数据库中的计算机名。我使用gethostbyadd来获取计算机名称。

请告诉我在数据库中存储访客计算机名称的其他方法。

<?php

include 'connect.php';


$ip =           $_SERVER['REMOTE_ADDR'];
$host_name=     gethostbyaddr($_SERVER['REMOTE_ADDR']);


    $query= "insert into visitors_data (ip_address, computer_name, date, time)
             values('$ip', '$host_name', NOW(), CURTIME())";


    mysql_query($query);

?>

1 个答案:

答案 0 :(得分:0)

在我的快速查找中,它可以适用于本地网络,它可以正常工作并返回计算机名称。但是当从远程位置访问页面时,

$_SERVER['REMOTE_ADDR'];

将返回网络的公共IP地址,而不是特定客户端计算机。

gethostbyaddr($_SERVER['REMOTE_ADDR']);

将从该客户端计算机所在的网络提供该公共IP地址的结果。此结果将是该网络的公共主机名,而不显示客户端计算机的名称。

添加它,这将再次取决于该IP和域的反向PTR记录是否已配置。如果没有,则函数将返回主机提供商的主机名或仅返回IP(通常作为该IP的子域为ISP /主机)

另一个例外是托管专用服务器或VPS,其中公共IP直接指向机器。在大多数情况下,这可以显示服务器的主机名,但不能有任何用户从其服务器访问网站。

希望这会有所帮助。