
ब्राउज़र-आधारित नेटवर्क स्कैनर और स्थानीय-आईपी पहचान
webscan एक ब्राउज़र-आधारित नेटवर्क IP स्कैनर और स्थानीय IP डिटेक्टर है। यह WebRTC के माध्यम से RTP डेटा चैनल पर सुनकर और किसी भी लाइव IP पर पोर्ट पर वापस लूप करके उपयोगकर्ता/पीड़ित से बंधे IP का पता लगाता है, साथ ही मान्य सबनेट पर तत्काल टाइमआउट (TCP RST पैकेट वापस) की निगरानी करके सभी लाइव IP पतों की खोज करता है, जो fetch() कॉल या मान्य सबनेट/IP की ओर इशारा करने वाले छिपे हुए img टैग से प्राप्त होते हैं। मोबाइल और डेस्कटॉप पर सभी प्रमुख ब्राउज़रों और OS पर काम करता है। बीटा संस्करण कई तकनीकों को जोड़ने की अनुमति देने के लिए विस्तार योग्य है।
webscan इस तथ्य का लाभ उठाता है कि गैर-प्रतिक्रियाशील img टैग सॉकेट को स्रोत विशेषता को एक गैर-सॉकेट URI में बदलने से बंद किया जा सकता है (DOM से हटाने से विडंबना यह है कि सॉकेट बंद नहीं होता), या AbortController() इंटरफ़ेस के fetch() के सिग्नल समर्थन का उपयोग करके ब्राउज़र और नेटवर्क-आधारित रेट लिमिटिंग को रोका जा सकता है।
webscan को लाइव आज़माएँ यहाँ
बीटा संस्करण यहाँ
द्वारा @SamyKamkar
रिलीज़ 2020/11/07
अधिक मजेदार प्रोजेक्ट्स samy.pl पर
webscan इस प्रकार काम करता है:
// wait for scan to finish
let scanResults = await webScanAll()
// or get callbacks when ips are found with a promise
let ipsToScan = undefined // scans all pre-defined networks if null
let scanPromise = webScanAll(
ipsToScan, // array. if undefined, scan major subnet gateways, then scan live subnets. supports wildcards
{
rtc: true, // use webrtc to detect local ips
logger: l => console.log(l), // logger callback
noRedirect: false, // if true, doesn't redirect from http to http - Chrome doesn't scan detect network IPs proprly on https atm
localCallback: function(ip) { console.log(`local ip callback: ${ip}`) },
subnetCallback: function(ip) { console.log(`router ip callback: ${ip}`) },
networkCallback: function(ip) { console.log(`network ip callback: ${ip}`) },
}
)
scanResults = {
"local": ["192.168.0.109"], // local ip address
"network": { // other hosts on the network and how fast they respond
"192.168.0.1": 97,
"192.168.0.2": 82,
"192.168.0.100": 46,
"192.168.0.109": 0,
"192.168.0.117": 74,
"192.168.0.113": 17,
"192.168.0.112": 21,
"192.168.0.114": 25,
"192.168.0.116": 25,
"192.168.0.115": 25,
"192.168.0.105": 57,
"192.168.0.107": 63,
"192.168.0.103": 64,
"192.168.0.108": 31
}
}