我已经看到像spypig.com这样的服务在电子邮件中放置一个小图像,并在打开时从哪里跟踪。他们跟踪城市,国家,IP地址等。这是怎么做到的?
基本上,在您的电子邮件的HTML正文中,将有一个<img>
标记,如下所示:
<img src="http://www.yoursite.com/tracker.php?id=123456" alt="" />
当有人阅读他的邮件时,如果启用了图像,电子邮件客户端将向tracker.php
发送请求,以加载图像,并将其作为参数传递给id=123456
。
这个tracker.php
脚本将在您的服务器上,并且,当被调用时,它将:
id
参数,id
。tracker.php
脚本知道它被调用的IP地址 - 就像任何其他PHP脚本一样:
$ipAddress = $_SERVER['REMOTE_ADDR'];
并且,从此IP地址开始,您可以使用地理定位服务来查找电子邮件已在世界中的哪个位置打开。 举几个例子,你可以看看MaxMind或IPInfoDB
如您所知,id=123456
对应于一个特定的电子邮件地址,这可以找出每个订阅者的位置。
1.将跟踪器图像放在电子邮件中
<img src="http://www.yoursite.com/tracker.php?eid=123456&uid=123" alt="" width="1px" height="1px">
它的工作非常简单,一旦您的邮件打开,该跟踪器图像就会将请求发送到服务器,从该请求我们可以通过使用userID创建图像URL来获取信息,并且还可以考虑用户读取该邮件。
注意:不要使用display:none;用于隐藏图像的属性,可以通过垃圾邮件算法进行过滤。并且不要放置任何JavaScript代码,它也会阻止垃圾邮件过滤器
2.在tracker.php上
<?php
header("Content-Type: image/jpeg"); // it will return image
readfile("img.jpg");
dbfunction(); // place your db code
?>
3.通过以下功能获取IP地址。
function get_client_ip() {
$ipaddress = '';
if (isset($_SERVER['HTTP_CLIENT_IP']))
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_X_FORWARDED']))
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_FORWARDED']))
$ipaddress = $_SERVER['HTTP_FORWARDED'];
else if(isset($_SERVER['REMOTE_ADDR']))
$ipaddress = $_SERVER['REMOTE_ADDR'];
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
$PublicIP = get_client_ip();
4.地点:
任何地理定位服务都可以获得该位置,您可以使用开源GeoLocation finder,如nekudo,freegeoip。
例如
<?php
$json = file_get_contents("http://ipinfo.io/$PublicIP/geo");
$json = json_decode($json ,true);
$country = $json['country_name'];
$region= $json['region_name'];
$city = $json['city'];
?>
关于问题的第一部分,我所做的是从PHP文件返回图像。除了返回图像(它可以是1x1像素透明png)之外,所有信息都记录到数据库中。这样,当调用PHP文件时,您知道图像已加载,即已读取电子邮件。问题是许多现代客户端不会自动加载图像。出于隐私原因,这是为了不允许您尝试做的事情。
关于第二部分,有几个地理定位Web服务,您可以在其中提交IP并获取地理位置。您可以在返回1x1像素图像的PHP文件中执行此操作。以下是关于此网站的一个很好的主题:Geolocation web service recommendations