用户位置的邮件跟踪(在阅读邮件时跟踪用户位置)

时间:2015-12-02 10:10:16

标签: php email geolocation

我希望在用户阅读邮件时跟踪用户的位置。我添加了1x1px图像用于跟踪,它将调用我的位置脚本并将用户位置存储在数据库中。

位置脚本是(locations.php)

$location_details = json_decode(file_get_contents("http://ipinfo.io/".$_SERVER['REMOTE_ADDR']."/json"));    
$locationtext =  "Location : ".$location_details->city." ".$location_details->region." ".$location_details->country;

将在脚本上方调用的1x1px邮件跟踪图像

http://mysiteurl.com/location.php

问题是当我直接调用脚本时它会给我一个变量$_SERVER['REMOTE_ADDR']的用户的真实IP地址。但是当脚本调用当时的邮件时,它会给出不同的IP地址,即Gmail的SMTP或谷歌的代理IP。

我的$ _SERVER详细信息是:

{
   "PATH":"/usr/local/bin:/usr/bin:/bin",
   "UNIQUE_ID":"Vl7beLia4QsAAHUl504AAAAF",
   "PHPHANDLER":"/usr/local/php53/bin/php",
   "HTTP_HOST":"saisoft.us",
   "HTTP_X_REAL_IP":"66.249.93.219",
   "HTTP_ACCEPT_ENCODING":"gzip,deflate",
   "HTTP_CONNECTION":"close",
   "HTTP_USER_AGENT":"Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)",
   "SERVER_SOFTWARE":"Apache",
   "SERVER_NAME":"saisoft.us",
   "SERVER_ADDR":"181.224.138.204",
   "SERVER_PORT":"80",
   "REMOTE_ADDR":"66.249.93.219",
   "DOCUMENT_ROOT":"/home/saisoft9/public_html",
   "SERVER_ADMIN":"webmaster@saisoft.us",
   "SCRIPT_FILENAME":"/home/saisoft9/public_html/sugar/ss_custom/tracker_image.php",
   "REMOTE_PORT":"44678",
   "GATEWAY_INTERFACE":"CGI/1.1",
   "SERVER_PROTOCOL":"HTTP/1.0",
   "REQUEST_METHOD":"GET",
   "QUERY_STRING":"v_tracker_id=971295152638514267278685911477886786",
   "REQUEST_URI":"/sugar/ss_custom/tracker_image.php?v_tracker_id=971295152638514267278685911477886786",
   "SCRIPT_NAME":"/sugar/ss_custom/tracker_image.php",
   "PHP_SELF":"/sugar/ss_custom/tracker_image.php",
   "REQUEST_TIME":1449057144
}

1 个答案:

答案 0 :(得分:1)

  

当您的用户打开电子邮件时,Gmail会使用Google的安全代理服务器来提供可能包含在这些邮件中的图片。

Gmail正在使用某些代理之类的内容,例如https://ci3.googleusercontent.com/proxy/SECURITY-TOKEN#http://mysiteurl.com/pixel。实际上,对您的服务器的呼叫来自Gmail服务器,而不是直接来自用户的浏览器。

要解决此问题,您可以分享print_r($_SERVER);的结果吗?我认为当代理在那里时$_SERVER['HTTP_CLIENT_IP']

由于谷歌代理存在更多问题。请同时查看此答案images inside gmail email not being displayed