4

在我的服务器中有一张名为 /images/pic.jpg 的图片。我想跟踪尝试通过 url 直接访问该图片的用户的 IP 地址,例如 www.domain.com/images/pic.jpg。我可以通过以下方式跟踪手动用户的 IP 地址:

<?php $ipAddress = $_SERVER['REMOTE_ADDR']; ?>
4

2 回答 2

5

您可以创建一个拦截 PHP 脚本,该脚本将负责处理对存储在特定文件夹中的图像的所有请求。假设您的所有图像都位于images/文件夹内。您只需要创建一个重写规则,它将对该文件夹内文件的所有请求重定向到 PHP 脚本。

RewriteRule images/(.+)\.(jpg|gif|png) images.php?image=$1.$2

这样,您仍然可以像以前一样在标记中使用图像。

<img src="images/logo.png" />

请考虑到这种方法可能会对您的系统性能产生重大影响,因为由于每次都调用 PHP,所有对图像资源的请求现在都会产生处理开销。

于 2012-06-21T15:39:07.463 回答
4

如果他们直接访问图像,那么除了解析您的 access_logs 并查看谁在请求文件之外,您无法使用 PHP 进行任何操作来跟踪它们。

您最好的选择是使用 PHP 来提供图像本身。这样您就可以通过 PHP 跟踪谁在请求它。

例子:

<img src="image.php?imagename.jpg">
于 2012-06-21T15:28:03.290 回答