在我的服务器中有一张名为/images/pic.jpg的图片。我想跟踪试图通过url lik www.domain.com/images/pic.jpg直接访问该图片的用户的IP地址。我可以通过以下方式跟踪手动用户的IP地址:
<?php $ipAddress = $_SERVER['REMOTE_ADDR']; ?>
答案 0 :(得分:5)
您可以创建一个拦截PHP脚本,该脚本负责处理存储在特定文件夹中的所有图像请求。假设您的所有图像都位于images/
文件夹中。您只需要创建一个重写规则,它将该文件夹中所有文件请求重定向到PHP脚本。
RewriteRule images/(.+)\.(jpg|gif|png) images.php?image=$1.$2
通过这种方式,您仍然可以像以前那样在标记内使用图像。
<img src="images/logo.png" />
请注意,此方法可能会对系统性能产生严重影响,因为所有对图像资源的请求现在都会因为每次都调用PHP而产生处理开销。
答案 1 :(得分:4)
如果他们直接访问图像,你无法用PHP做任何事情来跟踪它们,然后解析你的access_logs并查看谁在请求文件。
您最好的选择是使用PHP来提供图像本身。这样,您就可以通过PHP跟踪谁在请求它。
示例:
<img src="image.php?imagename.jpg">