मेरे काम में कंप्यूटर का एक बहुत कुछ है और मैं एक मजाक बनाना चाहता हूं। मैं कंप्यूटर को नेटवर्क पर बंद कर सकता हूं, लेकिन आईपी पते ढूंढना मेरे लिए कठिन है।
मैं 192.168.1.aa से 192.168.1.zz तक सभी ऑनलाइन आईपी आसानी से कैसे पा सकता हूं?
मेरे काम में कंप्यूटर का एक बहुत कुछ है और मैं एक मजाक बनाना चाहता हूं। मैं कंप्यूटर को नेटवर्क पर बंद कर सकता हूं, लेकिन आईपी पते ढूंढना मेरे लिए कठिन है।
मैं 192.168.1.aa से 192.168.1.zz तक सभी ऑनलाइन आईपी आसानी से कैसे पा सकता हूं?
जवाबों:
आमतौर पर, nmapनेटवर्क को जल्दी से स्कैन करने के लिए काफी उपयोगी है।
नैम्प स्थापित करने के लिए, टर्मिनल में निम्नलिखित कमांड दर्ज करें:
sudo apt-get install nmap
एप्लिकेशन इंस्टॉल होने के बाद, निम्न कमांड दर्ज करें:
nmap -sn 192.168.1.0/24
यह आपको दिखाएगा कि मेजबान ने 192.168.1.0 और 192.168.1.255 के बीच नेटवर्क पर पिंग अनुरोधों का जवाब दिया।
Nmap के पुराने संस्करणों के लिए, उपयोग करें -sP:
nmap -sP 192.168.1.0/24
अतिरिक्त संदर्भों के लिए, निम्नलिखित पृष्ठ देखें:
यह सीखने के लिए बहुत उपयोगी उपकरण है।
यदि आपके नेटवर्क के सभी कंप्यूटर उबंटू या कोई अन्य वितरण है जो avahi-daemon( DNS-SD ) का उपयोग करता है , तो आप उन्हें (hostname और IP पते के साथ) विस्तृत सूची प्राप्त कर सकते हैं:
avahi-browse -rt _workstation._tcp
यदि आप अपने नेटवर्क में उपयोग किए गए सभी आईपी पते जानना चाहते हैं, तो आप इसका उपयोग कर सकते हैं arp-scan:
sudo arp-scan 192.168.1.0/24
चूंकि यह डिफ़ॉल्ट रूप से स्थापित नहीं है, इसलिए आपको इसे स्थापित करना होगा sudo apt-get install arp-scan। arp-scanस्थानीय नेटवर्क पर ARP पैकेट भेजें और प्राप्त प्रतिक्रियाओं को प्रदर्शित करता है, इसलिए यह फ़ायरवॉल होस्ट (IP पैकेट पर आधारित ट्रैफ़िक को ब्लॉक करता है) भी दिखाता है।
arp-scanमेरे वायरलेस नेटवर्क से जुड़े सभी डिवाइस नहीं मिलते हैं। अब, उदाहरण के लिए, sudo arp-scan 192.168.2.0/242 परिणाम (.1 और .1) nmap -sn 192.168.2.0/24दिखाते हैं , जबकि 4 परिणाम (.1, .2, .3 और .4) दिखाते हैं। तो, ऐसा लगता है कि nmapयह अधिक सटीक है (मुझे पता है कि नेटवर्क से जुड़ी 4 डिवाइस हैं)। ऐसा क्यों है?
nmap।
arp-scanअच्छा है !
पाठक को ध्यान दें : मूल उत्तर कुछ समय पहले पोस्ट किया गया है और उस समय जब मैं केवल शेल स्क्रिप्टिंग सीख रहा था। एक नई और बेहतर स्क्रिप्ट के लिए नीचे दिया गया पुनरीक्षित संस्करण देखें जो बहुत तेज़ी से कार्य करता है।
nmapमेरी # 1 पसंद होगी, लेकिन अगर आपके पास नहीं है तो क्या होगा? DIY तरीका एक पिंग स्क्रिप्ट के साथ होगा जो नेटवर्क पर प्रत्येक संभव आईपी पते के माध्यम से जाता है। हमारे पास यहाँ क्या है जबकि लूप है, जहां हम पते में अंतिम संख्या निर्धारित करते हैं, पते पर मूक सिंगल पिंग बनाते हैं, जांचें कि कमांड सफल हुआ या नहीं (और अगर यह सफल हुआ, तो होस्ट स्पष्ट रूप से ऊपर है), और printfबयान। त्वरित और गंदा तरीका, मुझे इसे लिखने के लिए लगभग 10 मिनट लगे, लेकिन रनटाइम थोड़ा धीमा हो सकता है, हालांकि।
#!/bin/sh
# set -x
NUM=1
while [ $NUM -lt 256 ];do
ping -q -c 1 192.168.0.$NUM > /dev/null
RESULT=$(echo $?)
if [ $RESULT -eq 0 ]; then
printf 192.168.0.$NUM"\n"
fi
NUM=$(expr $NUM + 1)
done
मैंने मूल रूप से 2015 के अगस्त में इस उत्तर को पोस्ट किया था। तब से मैंने शेल स्क्रिप्टिंग के बारे में थोड़ा और सीखा है, और मैंने एक बार इस स्क्रिप्ट को देखा, तो मुझे लगा कि इस उत्तर को कुछ सुधारों को जोड़ने के लिए फिर से सोचना अच्छा होगा। यहाँ कुछ विचार हैं:
स्क्रिप्ट स्पष्ट रूप से धीमी है और pingमेजबान की प्रतिक्रिया का इंतजार कर रही है। डिफ़ॉल्ट रूप से, pingदो RTT, कैसे भीड़भाड़ अपने नेटवर्क है, और जहाँ तक मैं समझता हूँ कि TCP प्रोटोकॉल प्रतीक्षा समय हर बार डबल्स के आधार पर बदलती कर सकते हैं, जिसके लिए (कम से कम के अनुसार इस )। इसलिए हम झंडे के pingसाथ समय निकाल सकते हैं -w 1। चूंकि हमारे पास 256 पते हैं और हम प्रत्येक पते के लिए 1 सेकंड मानते हैं, स्क्रिप्ट में लगभग 256/60 = 4.27 मिनट लगेंगे।
एक कमांड करना और फिर इसके निकास की स्थिति पर कब्जा करना $?वास्तव में आवश्यक नहीं था। if ... then;...fiआदेशों पर सीधे काम कर सकते हैं। दूसरे शब्दों में, यह करने के लिए पर्याप्त है:
if ping -w 1 -q -c 1 192.168.0.$NUM > /dev/null ;
then
<some other code here>
fi
printfआदेश इतनी के रूप में फिर से लिखा जा सकता है:
printf "IP %s is up\n" 192.168.0."$NUM"
यह एक शैलीगत बदलाव का अधिक हिस्सा है, लेकिन यह चर के printfसाथ अन्य भाषाओं के बहुत सारे काम करता है और कैसा दिखता है, इसके अनुरूप है "$NUM"। यहां उद्धृत करना आवश्यक नहीं है - चूंकि हम केवल संख्याओं के साथ काम कर रहे हैं, हमें किसी चर में रिक्त स्थान होने के कारण शब्द-विभाजन की आशंका नहीं है।
यदि हम कई पृष्ठभूमि प्रक्रियाओं को अपनाते हैं तो बेहतर प्रदर्शन में सुधार किया जा सकता है। नीचे दी गई स्क्रिप्ट का संपादन ठीक यही करता है। मैंने एक फ़ंक्शन में pingऔर (हां, कॉर्न नाम, मुझे पता है) डाल दिया । अब, एक एकल फ़ंक्शन भी है जो लूपिंग और कॉलिंग करता है ।printfpingfmainpingf
#!/bin/sh
# Uncomment for debugging
#set -x
pingf(){
if ping -w 2 -q -c 1 192.168.0."$1" > /dev/null ;
then
printf "IP %s is up\n" 192.168.0."$1"
fi
}
main(){
NUM=1
while [ $NUM -lt 255 ];do
pingf "$NUM" &
NUM=$(expr "$NUM" + 1)
done
wait
}
main
वह काम कितना बेहतर है? बुरा नहीं है, वास्तव में, कुछ सेकंड का मामला है।
$ time ./ping_script.sh
IP 192.168.0.1 is up
IP 192.168.0.101 is up
IP 192.168.0.27 is up
IP 192.168.0.29 is up
0m02.50s real 0m00.01s user 0m00.12s system
Netdiscover आपका जवाब हो सकता है।
टर्मिनल के माध्यम से स्थापित करने के लिए:
sudo apt-get install netdiscover
उदाहरण का उपयोग:
sudo netdiscover -r 192.168.1.0/24 -i wlan0
MAC Addreses वाला एक IP आपके टर्मिनल पर दिखाई देगा। स्क्रीनशॉट देखें
आशा है कि आप मदद करते हैं
*** buffer overflow detected ***: netdiscover terminated ।
fpingICMP के माध्यम से एक नेटवर्क पर कई मेजबानों को स्कैन करने के लिए एक महान उपकरण है। यदि स्थापित नहीं है, तो आप इसे स्थापित कर सकते हैं:
sudo apt-get install fping
fping ICMP ECHO_REQUEST पैकेट भेजता है और यदि होस्ट से ECHO_RESPONSE मिलता है तो इसे होस्ट के रूप में चिह्नित करें।
उदाहरण के लिए, सबनेट के मेजबानों को स्कैन करने के लिए, 192.168.1.0/24आप कर सकते हैं:
fping -g 192.168.1.0/24
मेजबान की एक विशिष्ट संख्या के लिए से जैसे 192.168.1.15करने के लिए 192.168.1.140:
fping -g 192.168.1.15 192.168.1.140
fping अत्यधिक विन्यास योग्य है जैसे कि कितने पैकेट भेजे जाएंगे, प्रतिक्रिया का इंतजार करने का समय, आउटपुट स्वरूप आदि।
man fpingअधिक विचार प्राप्त करने के लिए जाँच करें ।
angry ip scanner