-1

我试图弄清楚当用户在我的一个网页上使用 cURL 时如何返回特定的信息(即我不希望 curl 下载所有代码)。我在 ifconfig.me 上看到了一个工作示例,当您 curl ifconfig.me 时,它​​只返回您的 IP 地址。这是通过 Apache 完成并重定向 cURL 用户代理还是通过 PHP/HTML 以某种方式完成的?

已解决: 感谢@Dancrumb 为我指明了正确的方向。我能够使用 Apache mod_rewrite 将 curl 用户代理重定向到自定义页面,其中包含我希望 curl 提取的特定信息。

RewriteEngine  on
RewriteCond %{HTTP_USER_AGENT}  ^curl/*
RewriteRule ^/index\.php$ /ip.php [L]
4

1 回答 1

1

ifconfig.me 最有可能使用标头中的用户代理字符串来确定这不是浏览器请求。

如果你执行:

curl ifconfig.me/ua

你得到

curl/7.27.0

(或其他一些版本字符串)。

因此,如果您检查User-AgentHTTP 请求中的标头,您可以查看该请求是 Curl 请求、浏览器请求还是其他一些 UA。

于 2012-12-18T16:26:23.057 回答