
इंटरनेट डेटासेट्स को प्रासंगिक मेटाडेटा (जैसे, मूल AS, MaxMind GeoIP2, रिवर्स DNS, और WHOIS) के साथ एनोटेट करने की उपयोगिता
ZAnnotate एक Go उपयोगिता है जो बड़े IP डेटासेट को नेटवर्क मेटाडेटा के साथ एनोटेट करने की सुविधा प्रदान करती है। अभी इसमें शामिल हैं:
| CLI Flag | विवरण | API कुंजी चाहिए | डेटा डाउनलोड चाहिए |
|---|---|---|---|
--censys | Censys इंटरनेट इंटेलिजेंस (लाइव API) | हाँ | |
--cymru | Cymru IP ओरिजिन/पीयर ASN और ASN विवरण | ||
--geoasn | MaxMind GeoIP ASN डेटा | हाँ | |
--geoip2 | MaxMind GeoIP2 सिटी और जियोलोकेशन डेटा | हाँ | |
--greynoise | GreyNoise Psychic थ्रेट इंटेलिजेंस और CVE डेटा | हाँ (डाउनलोड करने के लिए) | हाँ |
--ipinfo | IPInfo.io ASN और जियोलोकेशन डेटा | हाँ | |
--rdap | RDAP (WHOIS उत्तराधिकारी) लुकअप (लाइव) | ||
--rdns | रिवर्स DNS लुकअप (लाइव) | ||
--routing | MRT रूटिंग टेबल से BGP/रूटिंग डेटा | हाँ | |
--spur | Spur इंटेलिजेंस (ASN, संगठन, इन्फ्रास्ट्रक्चर वर्गीकरण, जियोलोकेशन) | हाँ |
मॉड्यूल सेटअप पर जाएँ: Censys · Cymru · GeoASN · GeoIP · GreyNoise · IPInfo.io · RDAP · RDNS/रिवर्स DNS · रूटिंग/BGP · Spur
आप एनोटेटर्स के किसी भी संयोजन का उपयोग कर सकते हैं, उदाहरण के लिए यहाँ रिवर्स DNS और IPInfo एनोटेशन एक साथ दिए गए हैं:
echo "1.1.1.1" | zannotate --rdns --ipinfo --ipinfo-database=./data-snapshots/ipinfo_lite.mmdb
{
"ip":"1.1.1.1",
"ipinfo":{"country":"Australia","country_code":"AU","continent":"Oceania","continent_code":"OC","asn":"AS13335","as_name":"Cloudflare, Inc.","as_domain":"cloudflare.com"},
"rdns":{"domain_names":["one.one.one.one"]}
}
--help में प्रत्येक एनोटेटर के बारे में अधिक विवरण और उपलब्ध फ्लैग होते हैं।
zannotate --help
ZAnnotate को make install का उपयोग करके इंस्टॉल किया जा सकता है।
make install
या यदि आपके पास make इंस्टॉल नहीं है, तो आप निम्न कमांड का उपयोग कर सकते हैं:
cd cmd/zannotate && go install
किसी भी तरह से, यह zannotate बाइनरी को आपकी $GOPATH/bin निर्देशिका में इंस्टॉल करेगा।
जाँचें कि यह सही ढंग से इंस्टॉल हुआ है:
zannotate --help
डिफ़ॉल्ट रूप से, ZAnnotate मानक इनपुट पर न्यू-लाइन से सीमांकित IP पतों की अपेक्षा करता है। उदाहरण के लिए:
printf "1.1.1.1\n8.8.8.8" | zannotate --rdns
{"ip":"1.1.1.1","rdns":{"domain_names":["one.one.one.one"]}}
{"ip":"8.8.8.8","rdns":{"domain_names":["dns.google"]}}
आप उस डेटा को एनोटेट करना चाह सकते हैं जो पहले से JSON प्रारूप में है। तब आपको --input-file-type=json फ्लैग का उपयोग करना होगा। यह मौजूदा JSON ऑब्जेक्ट में एक zannotate फ़ील्ड सम्मिलित करेगा। उदाहरण के लिए:
echo '{"ip": "1.1.1.1"}' | zannotate --rdns --geoasn --geoasn-database=/path-to-geo-asn.mmdb --input-file-type=json
{"ip":"1.1.1.1","zannotate":{"geoasn":{"asn":13335,"org":"CLOUDFLARENET"},"rdns":{"domain_names":["one.one.one.one"]}}}
यदि आपके JSON ऑब्जेक्ट्स में IP पते के लिए डिफ़ॉल्ट ip से भिन्न फ़ील्ड है, तो आप उसे --input-ip-field फ्लैग के साथ निर्दिष्ट कर सकते हैं। उदाहरण के लिए, यदि आपके JSON ऑब्जेक्ट्स में ip_address है, तो आप उपयोग कर सकते हैं:
echo '{"ip_address": "1.1.1.1"}' | zannotate --rdns --input-file-type=json --input-ip-field=ip_address
{"ip_address":"1.1.1.1","zannotate":{"rdns":{"domain_names":["one.one.one.one"]}}}
यदि आपका इनपुट डेटा CSV प्रारूप में है, तो आप --input-file-type=csv फ्लैग का उपयोग कर सकते हैं।
printf "name,ip,date\n cloudflare,1.1.1.1,04-04-26\n google,8.8.8.8,04-04-26" | zannotate --rdns --input-file-type=csv
{"name":" cloudflare","ip":"1.1.1.1","date":"04-04-26","zannotate":{"rdns":{"domain_names":["one.one.one.one"]}}}
{"name":" google","ip":"8.8.8.8","date":"04-04-26","zannotate":{"rdns":{"domain_names":["dns.google"]}}}
JSON के समान, आप --input-ip-field फ्लैग का उपयोग करके ip के अलावा कोई अन्य कॉलम निर्दिष्ट कर सकते हैं जिसमें IP पता हो।
printf "name,ip_address,date\n cloudflare,1.1.1.1,04-04-26\n google,8.8.8.8,04-04-26" | zannotate --rdns --input-file-type=csv --input-ip-field=ip_address
{"date":"04-04-26","zannotate":{"rdns":{"domain_names":["dns.google"]}},"name":" google","ip_address":"8.8.8.8"}
{"date":"04-04-26","zannotate":{"rdns":{"domain_names":["one.one.one.one"]}},"name":" cloudflare","ip_address":"1.1.1.1"}
डिफ़ॉल्ट रूप से, ZAnnotate मानक इनपुट से न्यू-लाइन सीमांकित IP पते पढ़ता है और मानक आउटपुट पर प्रति पंक्ति एक JSON ऑब्जेक्ट आउटपुट करता है, जैसे:
echo "1.1.1.1" | zannotate --rdns --geoasn --geoasn-database=/path-to-geo-asn.mmdb
{"ip":"1.1.1.1","geoasn":{"asn":13335,"org":"CLOUDFLARENET"},"rdns":{"domain_names":["one.one.one.one"]}}
यदि किसी IP पते को किसी त्रुटि या डेटा की कमी के कारण एनोटेट नहीं किया जा सकता है, तो उस एनोटेशन के लिए एक खाली फ़ील्ड होगी। उदाहरण के लिए, यदि कोई IP पता निजी है और इसलिए उसके पास कोई RDNS या ASN डेटा नहीं है, तो आउटपुट इस प्रकार दिखेगा:
echo "127.0.0.1" | zannotate --rdns --geoasn --geoasn-database=/path-to-geo-asn.mmdb
{"geoasn":{},"rdns":{},"ip":"127.0.0.1"}
--output-annotation-field फ्लैग का उपयोग CSV और JSON फ़ाइल इनपुट दोनों के लिए एनोटेशन के लिए zannotate के स्थान पर एक अलग फ़ील्ड नाम निर्दिष्ट करने के लिए किया जा सकता है।
उदाहरण के लिए JSON इनपुट के साथ आउटपुट टैग --output-annotation-field="info" का उपयोग करना:
printf "name,ip_address,date\n cloudflare,1.1.1.1,04-04-26\n google,8.8.8.8,04-04-26" | zannotate --rdns --input-file-type=csv --input-ip-field=ip_address --output-annotation-field="info"
{"name":" cloudflare","ip_address":"1.1.1.1","date":"04-04-26","info":{"rdns":{"domain_names":["one.one.one.one"]}}}
{"ip_address":"8.8.8.8","date":"04-04-26","info":{"rdns":{"domain_names":["dns.google"]}},"name":" google"}
[!NOTE] URL और निर्देश समय के साथ बदल सकते हैं। ये मई 2026 तक अद्यतन हैं।
Censys इंटरनेट-व्यापक होस्ट और नेटवर्क डेटा प्रदान करता है, जिसमें जानकारी शामिल है कि IP पर कौन सी सेवाएँ चल रही हैं, उसके पास कौन से TLS प्रमाणपत्र हैं, और भी बहुत कुछ। वे एक मुफ्त टियर प्रदान करते हैं जो प्रति माह सीमित संख्या में क्वेरी की अनुमति देता है, जिसका उपयोग Censys डेटा के साथ IP एनोटेशन को समृद्ध करने के लिए किया जा सकता है।