2012-12-18 23 views
-1

我想弄清楚當用戶在我的一個網頁上使用cURL時如何返回一個特定的信息(即我不想捲曲來下載所有的代碼)。我在ifconfig.me上看到了這個工作的例子,當你蜷縮ifconfig.me時,它只返回你的IP地址。這是用Apache完成的,重定向cURL用戶代理還是通過PHP/HTML以某種方式完成?如何在用戶使用CURL時返回特定信息?

已解決: 感謝@Dancrumb指引我在正確的方向。我能夠使用Apache mod_rewrite將curl用戶代理重定向到一個自定義頁面,並提供我想要的curl提供的特定信息。

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

你的cURL輸出是什麼? –

+0

爲什麼你不想* cURL *下載你的代碼?你使用LWP :: UserAgent的人很好嗎? wget怎麼樣?怎麼樣的桌面瀏覽器? – Quentin

+0

當你在服務器上指向curl時會發生什麼? – Dancrumb

回答

1

ifconfig.me很可能使用頭中的User Agent字符串來判斷這不是瀏覽器請求。

如果執行:

curl ifconfig.me/ua 

curl/7.27.0 

(或其他一些版本字符串)。因此,如果您在HTTP請求中檢查User-Agent標頭,您可以看到該請求是否爲Curl請求,瀏覽器請求或其他UA。

+0

值得注意的是,curl可以發送一個用戶代理(CURLOPT_USERAGENT),所以雖然這是問題的要求,但它可以被規避。 – piddl0r

+0

我有一種感覺,他們正在做這樣的事情。所以我需要使用Apache來檢測/重定向curl用戶代理到僅包含我想返回的特定數據的自定義頁面? – jacobt777

+0

@ piddl0r耶...依賴於UA字符串並非萬無一失,但它是一種定製內容的好方法 – Dancrumb

相關問題