
दिए गए IP address के लिए विभिन्न प्रौद्योगिकी का पता लगाने की एक उपयोगिता।
विशेषताएँ • स्थापना • उपयोग • डिस्कॉर्ड से जुड़ें
cdncheck एक उपकरण है जो DNS / IP नेटवर्क पतों से जुड़ी तकनीक की पहचान करने के लिए है।

cdncheck को सफलतापूर्वक स्थापित करने के लिए go1.19 आवश्यक है। नवीनतम संस्करण स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:
go install -v github.com/projectdiscovery/cdncheck/cmd/cdncheck@latest
cdncheck -h
यह उपकरण के लिए सहायता प्रदर्शित करेगा। यहाँ वे सभी स्विच दिए गए हैं जिनका यह समर्थन करता है।
उपयोग:
./cdncheck [flags]
फ़्लैग्स:
इनपुट:
-i, -input string[] प्रक्रिया करने के लिए ip / dns की सूची
पता लगाना:
-cdn CLI आउटपुट में केवल cdn दिखाएँ
-cloud CLI आउटपुट में केवल cloud दिखाएँ
-waf CLI आउटपुट में केवल waf दिखाएँ
मिलान:
-mcdn, -match-cdn string[] निर्दिष्ट cdn प्रदाता (cloudfront, fastly, google, leaseweb) के साथ होस्ट का मिलान करें
-mcloud, -match-cloud string[] निर्दिष्ट cloud प्रदाता (aws, google, oracle) के साथ होस्ट का मिलान करें
-mwaf, -match-waf string[] निर्दिष्ट waf प्रदाता (cloudflare, incapsula, sucuri, akamai) के साथ होस्ट का मिलान करें
फ़िल्टर:
-fcdn, -filter-cdn string[] निर्दिष्ट cdn प्रदाता (cloudfront, fastly, google, leaseweb) के साथ होस्ट को फ़िल्टर करें
-fcloud, -filter-cloud string[] निर्दिष्ट cloud प्रदाता (aws, google, oracle) के साथ होस्ट को फ़िल्टर करें
-fwaf, -filter-waf string[] निर्दिष्ट waf प्रदाता (cloudflare, incapsula, sucuri, akamai) के साथ होस्ट को फ़िल्टर करें
आउटपुट:
-resp CLI आउटपुट में तकनीक का नाम प्रदर्शित करें
-o, -output string सादे प्रारूप में फ़ाइल में आउटपुट लिखें
-v, -verbose विस्तृत आउटपुट प्रदर्शित करें
-j, -jsonl आउटपुट को json(लाइन) प्रारूप में लिखें
-nc, -no-color CLI आउटपुट में रंग अक्षम करें
-version परियोजना का संस्करण प्रदर्शित करें
-silent आउटपुट में केवल परिणाम दिखाएँ
कॉन्फ़िग:
-r, -resolver string[] उपयोग करने के लिए रिज़ॉल्वर की सूची (फ़ाइल या अल्पविराम से अलग)
-e, -exclude पता लगाए गए ip को आउटपुट से बाहर करें
-retry int DNS रिज़ॉल्यूशन के लिए अधिकतम पुनर्प्रयासों की संख्या (कम से कम 1 होनी चाहिए) (डिफ़ॉल्ट 2)
अपडेट:
-up, -update cdncheck को नवीनतम संस्करण में अपडेट करें
-duc, -disable-update-check स्वचालित cdncheck अपडेट जाँच अक्षम करें
provider.yaml फ़ाइल में CDN, WAF और Cloud प्रदाताओं की सूची है। इस सूची में URLs, ASNs और CIDRs शामिल हैं जिन्हें बाद में generate-index प्रोग्राम का उपयोग करके एक अंतिम sources_data.json फ़ाइल में संकलित किया जाता है।
provider.yaml फ़ाइल का उदाहरण -
cdn:
# asn में प्रदाताओं के ASN नंबर होते हैं
asn:
leaseweb:
- AS60626
# urls में CDN प्रदाताओं के लिए URL की सूची होती है
urls:
cloudfront:
- https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips
fastly:
- https://api.fastly.com/public-ip-list
# cidr में प्रदाताओं के CIDR रेंज होते हैं
cidr:
akamai:
- "23.235.32.0/20"
- "43.249.72.0/22"
- "103.244.50.0/24"
- "103.245.222.0/23"
- "103.245.224.0/24"
- "104.156.80.0/20"
नए प्रदाता जिन्हें URL, ASN या स्थिर CIDR की सूची से स्क्रैप किया जा सकता है, उन्हें नीचे दिए गए सरल चरणों का पालन करके provider.yaml फ़ाइल में जोड़ा जा सकता है:
cmd/generate-index/provider.yaml फ़ाइल वाले GitHub रिपॉजिटरी को फ़ोर्क करें।cmd/generate-index निर्देशिका पर जाएँ।provider.yaml फ़ाइल खोलें और उस प्रदाता के प्रकार (CDN, WAF, या Cloud) के लिए अनुभाग ढूँढ़ें जिसे आप जोड़ना चाहते हैं।provider.yaml फ़ाइल में उपयुक्त अनुभाग में जोड़ें।CNAME और Wappalyzer आधारित जोड़ other.go फ़ाइल में किए जा सकते हैं। बस वेरिएबल में मान जोड़ें और आप तैयार हैं।
// cdnCnameDomains में CNAME से डोमेन को cdns से मैप करने वाला एक मैप है
var cdnCnameDomains = map[string]string{
"cloudfront.net": "amazon",
"amazonaws.com": "amazon",
...
}
// cdnWappalyzerTechnologies में wappalyzer तकनीकों को cdns से मैप करने वाला एक मैप है
var cdnWappalyzerTechnologies = map[string]string{
"imperva": "imperva",
"incapsula": "incapsula",
...
}
सहायक लाइब्रेरी जो जाँचती है कि कोई दिया गया IP Cloud / CDN / WAF पर चल रहा है या नहीं।
लाइब्रेरी का उपयोग github.com/projectdiscovery/cdncheck आयात करके किया जा सकता है। यहाँ एक मूल उदाहरण दिया गया है:
package main
import (
"fmt"
"net"
"github.com/projectdiscovery/cdncheck"
)
func main() {
client := cdncheck.New()
ip := net.ParseIP("173.245.48.12")
// जाँचता है कि IP cdn डिनीलिस्ट में शामिल है या नहीं
matched, val, err := client.CheckCDN(ip)
if err != nil {
panic(err)
}
if matched {
fmt.Printf("%v एक %v है\n", ip, val)
} else {
fmt.Printf("%v एक CDN नहीं है\n", ip)
}
// जाँचता है कि IP cloud डिनीलिस्ट में शामिल है या नहीं
matched, val, err = client.CheckCloud(ip)
if err != nil {
panic(err)
}
if matched {
fmt.Printf("%v एक %v है\n", ip, val)
} else {
fmt.Printf("%v एक Cloud नहीं है\n", ip)
}
// जाँचता है कि IP waf डिनीलिस्ट में शामिल है या नहीं
matched, val, err = client.CheckWAF(ip)
if err != nil {
panic(err)
}
if matched {
fmt.Printf("%v WAF %v है\n", ip, val)
} else {
fmt.Printf("%v एक WAF नहीं है\n", ip)
}
}
cdncheck ❤️ के साथ projectdiscovery टीम द्वारा बनाया गया है और MIT License के तहत वितरित किया गया है।