
वैपालाइज़र विकल्प के साथ प्रौद्योगिकियों का पता लगाएं
यह प्रोजेक्ट एक कमांड लाइन टूल और पायथन लाइब्रेरी है जो Wappalyzer ब्राउज़र एक्सटेंशन और इसके फिंगरप्रिंट का उपयोग करके टेक्नोलॉजी का पता लगाता है। आधिकारिक ओपन-सोर्स प्रोजेक्ट के बंद होने के बाद उभरे अन्य प्रोजेक्ट पुराने फिंगरप्रिंट का उपयोग कर रहे हैं और डायनामिक वेब ऐप्स पर सटीकता की कमी रखते हैं। यह प्रोजेक्ट प्लेवराइट के माध्यम से क्रोमियम में एक्सटेंशन चलाकर उन सीमाओं को दरकिनार करता है।

पायथन पैकेज इंस्टॉल करने के बाद, प्लेवराइट का क्रोमियम ब्राउज़र इंस्टॉल करें:
python -m playwright install chromium
न्यूनतम Linux कंटेनरों में, क्रोमियम की सिस्टम निर्भरताएं भी इंस्टॉल करें:
python -m playwright install-deps chromium
pipx install wappalyzer
pipx run --spec playwright playwright install chromium
इसे लाइब्रेरी के रूप में उपयोग करने के लिए, इसे pip के साथ एक पृथक कंटेनर जैसे venv या docker के अंदर स्थापित करें। आप एक 'नियमित' स्थापना करने के लिए --break-system-packages का भी उपयोग कर सकते हैं, लेकिन इसकी अनुशंसा नहीं की जाती है।
pip install wappalyzer
python -m playwright install chromium
git clone https://github.com/s0md3v/wappalyzer-next.git
cd wappalyzer-next
docker compose build
docker compose run --rm wappalyzer -i https://example.com
docker compose run --rm wappalyzer -i urls.txt -w 3 -oJ output.json
कुछ सामान्य उपयोग उदाहरण नीचे दिए गए हैं, अधिक जानकारी के लिए सभी विकल्पों की सूची देखें।
wappalyzer -i https://example.comwappalyzer -i urls.txt -w 3wappalyzer -i urls.txt -t 15wappalyzer -i https://example.com -c "sessionid=abc123; token=xyz789"wappalyzer -i https://example.com -oJ results.jsonwappalyzer -i https://example.com -oJजब आउटपुट फ़्लैग का उपयोग बिना फ़ाइल के किया जाता है, तो रिपोर्ट stdout पर लिखी जाती है। स्थिति पंक्तियाँ, बैनर टेक्स्ट और त्रुटियाँ stderr पर लिखी जाती हैं।
नोट: सटीकता के लिए 'full' स्कैन प्रकार (डिफ़ॉल्ट) का उपयोग करें। 'fast' और 'balanced' ब्राउज़र इम्यूलेशन का उपयोग नहीं करते हैं।
-i: इनपुट URL या URL वाली फ़ाइल (एक पंक्ति में एक)--scan-type: स्कैन प्रकार (डिफ़ॉल्ट: 'full')
fast: त्वरित HTTP-आधारित स्कैन (1 अनुरोध भेजता है)balanced: अधिक अनुरोधों के साथ HTTP-आधारित स्कैनfull: wappalyzer एक्सटेंशन का उपयोग करके पूर्ण स्कैन-w, --workers: समवर्ती वर्कर्स की संख्या (डिफ़ॉल्ट: 5; पूर्ण स्कैन 3 तक सीमित हैं)-t, --timeout: पूर्ण स्कैन में पेज लोड होने की प्रतीक्षा करने के लिए अधिकतम सेकंड (डिफ़ॉल्ट: 30)-oJ [file]: JSON आउटपुट फ़ाइल पथ, या stdout जब फ़ाइल छोड़ दी जाती है या - पर सेट की जाती है-oC [file]: CSV आउटपुट फ़ाइल पथ, या stdout जब फ़ाइल छोड़ दी जाती है या - पर सेट की जाती है-oH [file]: HTML आउटपुट फ़ाइल पथ, या stdout जब फ़ाइल छोड़ दी जाती है या पर सेट की जाती हैपायथन लाइब्रेरी pypi पर wappalyzer के रूप में उपलब्ध है और उसी नाम से आयात किया जा सकता है।
एक से अधिक URL स्कैन करते समय Wappalyzer का उपयोग करें। ब्राउज़र एक बार शुरू होता है, पुन: उपयोग किया जाता है, और with ब्लॉक समाप्त होने पर बंद हो जाता है।
from wappalyzer import Wappalyzer
with Wappalyzer(workers=3, timeout=30) as scanner:
results = scanner.analyze_many([
'https://example.com',
'https://github.com',
'https://python.org',
])
for url, technologies in results.items():
print(url)
for name, data in technologies.items():
version = f" {data['version']}" if data['version'] else ""
print(f" {name}{version}")
वही स्कैनर बिना क्रोमियम को फिर से खोले एक बार में एक URL भी स्कैन कर सकता है:
from wappalyzer import Wappalyzer
with Wappalyzer(workers=3, timeout=30) as scanner:
github = scanner.analyze('https://github.com')
python = scanner.analyze('https://python.org')
एकल URL के लिए, analyze() छोटा है। यह अपना स्वयं का स्कैनर बनाता है, एक स्कैन चलाता है, और इसे बंद कर देता है।
from wappalyzer import analyze
results = analyze(
url='https://example.com',
scan_type='full', # 'fast', 'balanced', या 'full'
cookie='sessionid=abc123',
timeout=30
)
बड़े कामों के लिए लूप में शीर्ष-स्तरीय analyze() फ़ंक्शन को कॉल न करें। पुन: उपयोग किए गए स्कैनर पर Wappalyzer.analyze_many() या Wappalyzer.analyze() का उपयोग करें ताकि प्रत्येक URL के लिए क्रोमियम और Wappalyzer एक्सटेंशन फिर से लोड न हों।
url (str): विश्लेषण करने के लिए URLscan_type (str, वैकल्पिक): करने के लिए स्कैन का प्रकार
'fast': त्वरित HTTP-आधारित स्कैन'balanced': अधिक अनुरोधों के साथ HTTP-आधारित स्कैन'full': जावास्क्रिप्ट निष्पादन सहित पूर्ण स्कैन (डिफ़ॉल्ट)workers (int, वैकल्पिक): पूर्ण स्कैन के लिए बनाने के लिए ब्राउज़र वर्कर्स की संख्या (डिफ़ॉल्ट: 1)cookie (str, वैकल्पिक): प्रमाणित स्कैन के लिए कुकी हेडर स्ट्रिंगtimeout (int, वैकल्पिक): पूर्ण स्कैन में पेज लोड होने की प्रतीक्षा करने के लिए अधिकतम सेकंड (डिफ़ॉल्ट: 30)URL को कुंजी और पाई गई टेक्नोलॉजी को मान के रूप में एक शब्दकोश लौटाता है:
{
"https://github.com": {
"Amazon S3": {
"version": "",
"confidence": 100,
"categories": ["CDN"],
"groups": ["Servers"]
},
"React Router": {
"version": "6",
"confidence": 100,
"categories": ["JavaScript frameworks"],
"groups": ["Web development"]
}
},
"https://example.com": {}
}
पूर्ण स्कैनर प्लेवराइट के माध्यम से क्रोमियम में Wappalyzer एक्सटेंशन चलाता है। प्लेवराइट में क्रोमियम एक्सटेंशन समर्थन प्रत्यक्ष है और इसे geckodriver या Selenium की आवश्यकता नहीं है।
--c, --cookie: प्रमाणित स्कैन के लिए कुकी हेडर स्ट्रिंग