Networking 如何从网站访问者那里获取所有客户信息?

Networking 如何从网站访问者那里获取所有客户信息?,networking,Networking,我想收集当有人访问网页时我们可以收集的所有信息:例如: clients screen resolution: <script type='text/javascript'>document.write(screen.width+'x'+screen.height); </script> referer: <?php print ($_SERVER['HTTP_REFERER']); ?> client ip: <?php print ($_SERVER[

我想收集当有人访问网页时我们可以收集的所有信息:例如:

clients screen resolution: <script type='text/javascript'>document.write(screen.width+'x'+screen.height); </script>
referer: <?php print ($_SERVER['HTTP_REFERER']); ?>
client ip: <?php print ($_SERVER['REMOTE_ADDR']); ?>
user agent:  <?php print ($_SERVER['HTTP_USER_AGENT']); ?>
客户端屏幕分辨率:document.write(screen.width+'x'+screen.height);
推荐人:
客户端ip:
用户代理:

还有什么?

这些是基本信息。除此之外的任何东西都可能被视为间谍软件,隐私权倡导者(有理由)对此表示不满

从用户处获取更多信息的最佳方法是询问他们,使字段成为可选字段,并告知用户您将使用这些信息的确切目的。你会给他们寄一份时事通讯吗

如果你计划给他们发电子邮件,那么你必须使用“确认选择加入”方法——首先获得他们的同意(通过让他们回复电子邮件,键入一个特殊的机密唯一号码,确认他们允许你向他们发送新闻稿或任何你计划发送给他们的通知)


只要你事先知道如何使用这些信息,并让用户选择如何使用这些信息(默认情况下,这些选项都应该是“你没有权限”),你就有可能获得更多愿意信任你并为你提供更好质量信息的用户。对于那些不想透露自己任何个人信息的人,不要浪费时间试图获取这些信息,因为他们中的许多人都会采取措施防止这种情况发生并隐藏(这是他们的权利)。

可以找到PHP可用的列表

如果您需要更多的细节,您可能需要考虑使用. 什么目的

请记住,客户端IP现在几乎毫无意义。来自同一代理或同一NAT点的所有用户将具有相同的客户端IP。几年过去了,所有的AOL流量都来自于几个代理,尽管现在实际的AOL用户可能会被代理所超过:)

如果您想唯一地标识一个用户,那么在apache(mod_usertrack)或您使用的任何框架中创建cookie都很容易。如果这个人阻止了cookies,请尊重这一点,无论如何不要试图用诡计来跟踪它们。或者借鉴谷歌的经验,让它变得如此有用,人们会选择实用程序而不是cookie


请记住,Javascript在客户端上运行。您的document.write()将在其网页上显示信息,而不会为您的服务器执行任何操作。您可能希望使用Javascript将此信息放入cookie中,或者如果您有任何表单,则将其与表单提交一起存储。

使用此小PHP获取客户端计算机的所有信息:

<?php
foreach($_SERVER as $key => $value){
echo '$_SERVER["'.$key.'"] = '.$value."<br />";
}
?>

打印包含全部可提取信息的表。您可以简单地将变量直接复制并粘贴到php代码中

e、 g:

将使用php代码:

echo $_SERVER["GEOIP_COUNTRY_CODE"];

我喜欢用这样的东西:

$log = array(
  'ip' => $_SERVER['REMOTE_ADDR'],
  're' => $_SERVER['HTTP_REFERER'],
  'ag' => $_SERVER['HTTP_USER_AGENT'],
  'ts' => date("Y-m-d h:i:s",time())
);

echo json_encode($log);

您可以将该字符串保存在一个文件中,JSON非常小,只有一行。

获取$\u服务器变量的所有输出:

<?php
$test_HTTP_proxy_headers = array('GATEWAY_INTERFACE','SERVER_ADDR','SERVER_NAME','SERVER_SOFTWARE','SERVER_PROTOCOL','REQUEST_METHOD','REQUEST_TIME','REQUEST_TIME_FLOAT','QUERY_STRING','DOCUMENT_ROOT','HTTP_ACCEPT','HTTP_ACCEPT_CHARSET','HTTP_ACCEPT_ENCODING','HTTP_ACCEPT_LANGUAGE','HTTP_CONNECTION','HTTP_HOST','HTTP_REFERER','HTTP_USER_AGENT','HTTPS','REMOTE_ADDR','REMOTE_HOST','REMOTE_PORT','REMOTE_USER','REDIRECT_REMOTE_USER','SCRIPT_FILENAME','SERVER_ADMIN','SERVER_PORT','SERVER_SIGNATURE','PATH_TRANSLATED','SCRIPT_NAME','REQYEST_URI','PHP_AUTH_DIGEST','PHP_AUTH_USER','PHP_AUTH_PW','AUTH_TYPE','PATH_INFO','ORIG_PATH_INFO','GEOIP_COUNTRY_CODE');
    foreach($test_HTTP_proxy_headers as $header){
        echo $header . ": " . $_SERVER[$header] . "<br/>";
    }
?>


这是服务器信息,不是客户端信息@它的一部分,例如
$\u服务器[“REMOTE\u ADDR”]
包含客户端数据,而不是
foreach(){…}
,使用
print\r($\u服务器)
$log = array(
  'ip' => $_SERVER['REMOTE_ADDR'],
  're' => $_SERVER['HTTP_REFERER'],
  'ag' => $_SERVER['HTTP_USER_AGENT'],
  'ts' => date("Y-m-d h:i:s",time())
);

echo json_encode($log);
<?php
$test_HTTP_proxy_headers = array('GATEWAY_INTERFACE','SERVER_ADDR','SERVER_NAME','SERVER_SOFTWARE','SERVER_PROTOCOL','REQUEST_METHOD','REQUEST_TIME','REQUEST_TIME_FLOAT','QUERY_STRING','DOCUMENT_ROOT','HTTP_ACCEPT','HTTP_ACCEPT_CHARSET','HTTP_ACCEPT_ENCODING','HTTP_ACCEPT_LANGUAGE','HTTP_CONNECTION','HTTP_HOST','HTTP_REFERER','HTTP_USER_AGENT','HTTPS','REMOTE_ADDR','REMOTE_HOST','REMOTE_PORT','REMOTE_USER','REDIRECT_REMOTE_USER','SCRIPT_FILENAME','SERVER_ADMIN','SERVER_PORT','SERVER_SIGNATURE','PATH_TRANSLATED','SCRIPT_NAME','REQYEST_URI','PHP_AUTH_DIGEST','PHP_AUTH_USER','PHP_AUTH_PW','AUTH_TYPE','PATH_INFO','ORIG_PATH_INFO','GEOIP_COUNTRY_CODE');
    foreach($test_HTTP_proxy_headers as $header){
        echo $header . ": " . $_SERVER[$header] . "<br/>";
    }
?>