OSIPs
यह स्क्रिप्ट किसी दिए गए फ़ोल्डर से प्रत्येक फ़ाइल को पुनरावर्ती रूप से स्कैन करती है, प्रत्येक IPv4 और IPv6 पता निकालती है, सार्वजनिक IP पतों को फ़िल्टर करती है और फिर इन IPs को TOR रिले, WhoIs सेवा और स्थान सेवा के विरुद्ध क्वेरी करती है। यह 4 फ़ाइलें आउटपुट करती है: IP पतों के सभी विवरणों के साथ एक CSV फ़ाइल और एक JSON फ़ाइल, प्रत्येक मिले IP पते का एक इंडेक्स रखने वाली एक CSV फ़ाइल और एक KML फ़ाइल जिसमें सभी एकत्रित स्थान हों।
विशेषताएँ
- एक ही रन में कितनी भी फ़ाइलों को पार्स करता है
- एकल इनपुट फ़ाइल के लिए भी चलाया जा सकता है
- सभी अद्वितीय मान्य IPv4 और IPv6 पतों को निकालता है (दो पतों की सही तुलना करता है, भले ही वे अलग-अलग लिखे गए हों)
- सभी सार्वजनिक IP पतों के लिए सार्वजनिक रूप से उपलब्ध Who Is जानकारी एकत्र करता है
- सभी सार्वजनिक IP पतों को TOR रिले के विरुद्ध क्वेरी करता है
- सभी सार्वजनिक IP पतों के लिए भौगोलिक स्थान की जानकारी एकत्र करता है
- अन्य स्क्रिप्ट में आसान एकीकरण के लिए गैर-इंटरैक्टिव मोड में कमांड लाइन पैरामीटर के साथ चलाया जा सकता है
- बिना पैरामीटर के चलाया जा सकता है और इनपुट मान इंटरैक्टिव रूप से प्रदान किए जा सकते हैं
- उपयोगकर्ता को यह चुनने की अनुमति देता है कि कौन से चरण किए जाएँ या छोड़े जाएँ
- प्रत्येक चरण पर कंसोल पर सूचना को विस्तार से आउटपुट करता है
- सभी IP पतों का विवरण CSV फ़ाइल और JSON फ़ाइल दोनों में निर्यात करता है
- एक KML फ़ाइल निर्यात करता है जिसे मानचित्र के ऊपर आसानी से लोड किया जा सकता है
- आसान ट्रेसबैक के लिए सभी मिले IP पतों का एक इंडेक्स एक अलग CSV फ़ाइल में रखता है
आवश्यक शर्तें:
Python 3.9.x
इंस्टॉलेशन
निर्भरताएँ स्थापित करने के लिए, चलाएँ:
pip install -r requirements.txt
निष्पादन योग्य में संकलित करें
pip install pyinstaller
pyinstaller --onefile osips.py
उपयोग
python osips.py [-h] [-F INPUTFOLDER] [-f INPUTFILE] [-p INPUTFILESPATTERN] [-o OUTPUTFILESNAME] [-t {y,n,Y,N}] [-w {y,n,Y,N}] [-l {y,n,Y,N}] [-locationEndpoint LOCATIONENDPOINT]
इंटरैक्टिव रूप में
python osips.py
गैर-इंटरैक्टिव रूप में
python osips.py --checkTor Y --checkWhoIs Y --checkLocations Y --inputFolder testFolder/ --inputFilesPattern * --outputFilesName test
सहायता
python osips.py -h
विकल्प
-h, --help
सहायता संदेश दिखाएँ और बाहर निकलें
-F INPUTFOLDER, --inputFolder INPUTFOLDER
IPs वाली फ़ाइलों वाला एक फ़ोल्डर (लॉग फ़ाइलें, ईमेल फ़ाइलें, टेक्स्ट फ़ाइलें आदि)। IPs IPv4 और/या IPv6 हो सकते हैं और फ़ाइलों में कहीं भी रखे जा सकते हैं। स्क्रिप्ट फ़ोल्डर की प्रत्येक फ़ाइल को पार्स करेगी और प्रत्येक IP के लिए स्कैन करेगी
-f INPUTFILE, --inputFile INPUTFILE
फ़ोल्डर के बजाय केवल एक फ़ाइल स्कैन करने के लिए इस विकल्प का उपयोग करें। फ़ाइल कोई भी टेक्स्ट फ़ाइल हो सकती है जिसमें IP पते हों (लॉग फ़ाइलें, ईमेल फ़ाइलें, टेक्स्ट फ़ाइलें आदि)
-p INPUTFILESPATTERN, --inputFilesPattern INPUTFILESPATTERN
इनपुट फ़ोल्डर में फ़ाइलों के लिए उपयोग करने का पैटर्न दर्ज करें। उदाहरण: सभी फ़ाइलों के लिए *, टेक्स्ट फ़ाइलों के लिए *.txt
-o OUTPUTFILESNAME, --outputFilesName OUTPUTFILESNAME
आउटपुट फ़ाइलों का नाम, बिना एक्सटेंशन के। इस नाम से 4 अलग-अलग फ़ाइलें बनाई जाएँगी: IP विवरण संग्रहीत करने वाली एक CSV फ़ाइल, IP इंडेक्स संग्रहीत करने वाली एक इंडेक्स फ़ाइल, विवरण संग्रहीत करने वाली एक JSON फ़ाइल और स्थान संग्रहीत करने वाली एक KML फ़ाइल
-t {y,n,Y,N}, --checkTor {y,n,Y,N}
निर्दिष्ट करें कि क्या आप प्रत्येक सार्वजनिक IP पते को TOR रिले IP पतों के विरुद्ध जाँचना चाहते हैं
-w {y,n,Y,N}, --checkWhoIs {y,n,Y,N}
निर्दिष्ट करें कि क्या आप प्रत्येक सार्वजनिक IP पते के लिए WhoIs जानकारी निकालना चाहते हैं
-l {y,n,Y,N}, --checkLocations {y,n,Y,N}
निर्दिष्ट करें कि क्या आप प्रत्येक सार्वजनिक IP पते को जियोकोड करना चाहते हैं और https://reallyfreegeoip.org का उपयोग करके स्थान जानकारी निकालना चाहते हैं
-locationEndpoint LOCATIONENDPOINT
स्थान के लिए डिफ़ॉल्ट REST एंडपॉइंट "https://reallyfreegeoip.org/json/" है। आप प्लेसहोल्डर सहित एक अलग एंडपॉइंट निर्दिष्ट कर सकते हैं। परिणाम JSON में होना चाहिए और इसमें निम्नलिखित फ़ील्ड शामिल होने चाहिए: country_name, region_code, region_name, city, zip_code, time_zone, latitude, longitude, metro_code
टिप्पणियाँ
- उपकरण IPv4 पतों को केवल डॉट दशमलव संकेतन (xxx.xxx.xxx.xxx) में निकालता है। यह IPv4 पतों को दशमलव, अष्टाधारी या षोडश आधारी संकेतन में नहीं निकालता क्योंकि गलत सकारात्मकता की दर अधिक होती है।
- पाए गए सार्वजनिक IP पतों की संख्या के आधार पर, ऑनलाइन सेवाओं को क्वेरी करने में काफी समय लग सकता है। यदि आप बहुत सारे IP पतों के साथ काम कर रहे हैं, तो पहले किसी भी सेवा को क्वेरी किए बिना केवल IP पते निकालने के लिए उपकरण चलाने की सिफारिश की जाती है। निष्कर्षण परिणाम देखने के बाद, आप उपकरण के कुल चलने के समय का अनुमान लगा सकते हैं यदि सेवाओं से क्वेरी की जाती है, और अंततः केवल एक या दो सेवाओं से क्वेरी करने का चुनाव कर सकते हैं।
- TOR रिले की जाँच उपकरण चलाने के समय की जाती है। चूँकि ये IPs लगातार बदलते रहते हैं, यह जानकारी बहुत सटीक नहीं हो सकती है। यदि किसी IP के लिए कोई तिथि भी पहचानी जा सकती है, तो इसे इस पते पर ExoneraTor के विरुद्ध जाँचा जाना चाहिए: https://metrics.torproject.org/exonerator.html
- Who Is जानकारी के साथ-साथ स्थान की जानकारी सार्वजनिक रूप से उपलब्ध सेवाओं से लाइव एकत्र की जाती है, इसलिए IP पते इन सेवाओं को भेजे जाते हैं। ऐसी डाउनलोड करने योग्य डेटाबेस हैं जो आपको यह जानकारी स्थानीय रूप से एकत्र करने की अनुमति देंगे, लेकिन ये डाउनलोड मुफ्त नहीं हैं और निरंतर अपडेट की आवश्यकता होगी। यह उपकरण स्थानीय डेटाबेस के साथ काम करने के लिए नहीं बनाया गया है।
- स्थान एकत्र करने के लिए डिफ़ॉल्ट सेवा https://reallyfreegeoip.org है। यह बिना किसी सीमा के एक मुफ्त सेवा है, लेकिन यह बहुत सटीक नहीं हो सकती है। आप स्क्रिप्ट के -locationEndpoint पैरामीटर का उपयोग करके इस सेवा को किसी अन्य से बदल सकते हैं। आप एक और सेवा प्रदान कर सकते हैं जो एक IP पते को पैरामीटर के रूप में लेती है और JSON प्रतिक्रिया लौटाती है। IP पते के स्थान के लिए प्लेसहोल्डर के रूप में का उपयोग करें। उदाहरण: https://ipapi.co//json, https://api.ipstack.com/?access_key=ACCESS_KEY, https://freeapi.robtex.com/ipquery/। कृपया ध्यान दें कि इनमें से कुछ अन्य REST एंडपॉइंट आवश्यक फ़ील्ड नहीं लौटा सकते हैं और इस प्रकार स्क्रिप्ट के तर्क को तोड़ देंगे। इस मामले में, RequestInfoFromRestEndpoint नामक विधि को तदनुसार संशोधित किया जाना चाहिए।
आभार