2008-10-24 14 views
11

जब कोई उपयोगकर्ता मेरी वेबसाइट पर फ़ाइल डाउनलोड करने के लिए लिंक पर क्लिक करता है, तो वे this PHP file पर जाते हैं जो उस फ़ाइल के लिए डाउनलोड काउंटर बढ़ाता है और फिर हेडर() - उन्हें वास्तविक फ़ाइल पर रीडायरेक्ट करता है। मुझे संदेह है कि बॉट डाउनलोड लिंक का पालन कर रहे हैं, हालांकि, डाउनलोड की संख्या गलत है।मैं PHP में अपने फ़ाइल डाउनलोड काउंटर को बढ़ाने से बॉट्स को कैसे रोकूं?

  • मुझे बॉट्स को कैसे पता चलेगा कि उन्हें लिंक का पालन नहीं करना चाहिए?
  • क्या अधिकांश बॉट का पता लगाने का कोई तरीका है?
  • क्या फ़ाइल को डाउनलोड करने की संख्या की गणना करने का कोई बेहतर तरीका है?
+0

आपको एक अद्यतित उपयोगकर्ता एजेंट डेटाबेस के साथ ब्राउज़र पहचान स्क्रिप्ट का उपयोग करना होगा। यहां [एक] है (http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/#typicalusage)। –

उत्तर

16

robots.txt: http://www.robotstxt.org/robotstxt.html

सभी बॉट्स इसका सम्मान करते हैं, लेकिन सबसे अधिक है। यदि आप वास्तव में बॉट्स के माध्यम से पहुंच को रोकना चाहते हैं, तो इसे एक जीईटी के बजाय लिंक पोस्ट करें। बॉट पोस्ट यूआरएल का पालन नहीं करेंगे। (आईई, एक छोटे से फॉर्म का उपयोग करें जो साइट पर वापस पोस्ट करता है जो आपको यूआरएल में प्रश्न में ले जाता है।)

4

मुझे लगता है कि गोदेके के robots.txt उत्तर पर्याप्त होंगे। यदि आप बिल्कुल अपने काउंटर को बॉट नहीं कर सकते हैं, तो मैं कुछ common robot user agents के साथ क्लिक बढ़ाने में वृद्धि के साथ रोबोट फ़ाइल का उपयोग करने की अनुशंसा करता हूं।

कोई भी रास्ता सही नहीं है, लेकिन दोनों का मिश्रण शायद थोड़ा और सख्त है। अगर मैं था, तो शायद मैं सिर्फ रोबोट फाइल से चिपके रहूंगा, क्योंकि यह आसान और शायद सबसे प्रभावी समाधान है।

3

गोडेके सही है, रोबोट.txt बॉट को डाउनलोड करने से रोकने के लिए पहली बात है।

गिनती के संबंध में, यह वास्तव में एक वेब विश्लेषिकी समस्या है। क्या आप अपने www एक्सेस लॉग नहीं रखते हैं और Webalizer या AWStats (या वेबटेन्ड्स या उर्चिन जैसे फैंसी विकल्प) जैसे एनालिटिक्स प्रोग्राम के माध्यम से उन्हें चला रहे हैं? मेरे लिए इस तरह की जानकारी एकत्र करने का तरीका है, क्योंकि यह आसान है और जब उपयोगकर्ता फ़ाइल डाउनलोड कर रहा है तो कोई PHP, रीडायरेक्ट या अन्य प्रदर्शन हिट नहीं होता है। आप केवल अपाचे लॉग का उपयोग कर रहे हैं जिसे आप वैसे भी रखते हैं। (और grep -c आपको किसी विशेष फ़ाइल या वाइल्डकार्ड पैटर्न पर त्वरित 'एन' गंदे गिनती देगा।)

आप अपने आंकड़े सॉफ़्टवेयर को बॉट्स, या विशिष्ट उपयोगकर्ता एजेंटों और अन्य मानदंडों द्वारा हिट को अनदेखा करने के लिए कॉन्फ़िगर कर सकते हैं (और यदि आप बदलते हैं बाद में आपके मानदंड, आप बस पुराने लॉग डेटा को पुन: संसाधित करते हैं)। बेशक, इसके लिए आपके सभी पुराने लॉग की आवश्यकता होती है, इसलिए यदि आप उन्हें logrotate जैसे कुछ के साथ फेंक रहे हैं तो आपको बिना किसी ऐतिहासिक डेटा के शुरू करना होगा।

0

आप दुर्भावनापूर्ण बॉट का भी पता लगा सकते हैं, जो http://www.bad-behavior.ioerror.us/ का उपयोग करके robots.txt का सम्मान नहीं करेगा।

संबंधित मुद्दे

 संबंधित मुद्दे