লিনাক্সের ল্যানে কম্পিউটারের তালিকা প্রদর্শন করুন


62

আমি একটি ওয়েব ডেভ যারা সুরক্ষা সম্পর্কে আরও ভাল পরিচালনা পেতে চাইছি। আমার নেটবুকটি চালু আছে একই ল্যানে সমস্ত কম্পিউটারের তালিকা দেওয়ার জন্য আমি কোনও উপায় (লিনাক্স / ডেবিয়ান ভিত্তিক ডিস্ট্রোজে) বের করার চেষ্টা করছি। আমি "আরপ-এন" চেষ্টা করেছিলাম তবে আমি মনে করি এটি সম্পূর্ণ তালিকা হয় না, কারণ আমার আইফোনটি আমার নেটবুকের মতো একই ওয়াই-ফাই রাউটারে রয়েছে, এবং এটি সামনে আসে নি। সমস্ত একই গেটওয়ে ভাগ করে নিচ্ছে এমন মেশিনগুলির একটি সম্পূর্ণ তালিকা পাওয়ার আরও ভাল উপায় আছে কি?


উত্তর:


58

পান Nmap । এটি ম্যাট্রিক্সে ব্যবহৃত ট্রিনিটি প্রোগ্রাম এবং আপনি যে ল্যানের সাথে সংযুক্ত আছেন সেগুলি এবং আরও অনেকগুলি আবিষ্কার করার জন্য আপনি স্ক্যান করতে পারেন।

এখানে রেফারেন্স গাইড।


16
ঠিক আছে. দেখে মনে হচ্ছে "sudo nmap -sL 123.123.123। *" যা আমি খুঁজছি, বা -এসএল এর পরিবর্তে -এসপি। ধন্যবাদ!
ক্যাপ্টসালটিজ্যাক

2
sudo apt-get install nmap
এনটিএপ

1
আমি ভেবেছিলাম এটি আসলে একটি গুরুতর ওয়েবসাইট, লোল +1
ব্যবহারকারী 10089632

38

আপনি যা স্ক্যান করতে চান তার সিআইডিআর ব্লক নোটেশন ব্যবহার করে আমি এটি, এনএম্যাপ এবং একটি ঠিকানা ব্যবহার করি। প্রথমে আপনাকে এনএমএপ ইনস্টল করতে হবে কারণ এটি আপনার সাথে ডিস্ট্রোতে প্রি ইনস্টলড নাও আসতে পারে। উবুন্টুতে:

sudo apt-get install nmap

পরবর্তী আইফোনফিগ ব্যবহার করে আপনার নেটওয়ার্ক ঠিকানাটি বের করুন:

ifconfig

ইন্টারফেসের জন্য ifconfig আউটপুট আমি স্ক্যান করতে চাই:

wlan1     Link encap:Ethernet  HWaddr 00:1f:3b:03:d2:bf  
          inet addr:192.168.1.104  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21f:3bff:fe03:d2bf/64 Scope:Link
          ...

সিআইডিআর স্বরলিপিতে নেটওয়ার্কের ঠিকানা বের করার জন্য ইনিট অ্যাডার এবং মাস্ক ব্যবহার করুন, আরও এখানে সিআইডিআরে । ঠিকানা:

192.168.1.0/24

-SP প্যারামিটার ব্যবহার করে এনএম্যাপ চালান, যা হোস্টটি অনলাইনে আছে কিনা তা পরীক্ষা করে দেখার পরে আর স্ক্যান করবে না:

sudo nmap -sP 192.168.1.0/24

এনএমএপ আউটপুট এইরকম কিছু দেখবে:

Starting Nmap 5.21 ( http://nmap.org ) at 2014-12-09 10:52 EST
Nmap scan report for 192.168.1.1
Host is up (0.013s latency).
MAC Address: -MAC ADDRESS- (Cameo Communications)
...
Nmap done: 256 IP addresses (5 hosts up) scanned in 3.26 seconds

এটি হ'ল, যদি আপনাকে এনএম্যাপের সাথে আরও সহায়তার প্রয়োজন হয় তবে এনএম্যাপের অফিসিয়াল ডকুমেন্টেশন দেখুন বা চালান:

nmap --help 

2
nmap -sA 192.168.1.0/24 এনএমএপ বিকল্পটি -sAআরও ভাল পঠনযোগ্যতার সাথে অনুরূপ বর্ণনামূলক ফলাফল দেখায়, এতে বিকল্প হিসাবে ডিভাইসের নাম, আইপি, ম্যাক ইত্যাদি অন্তর্ভুক্ত রয়েছে -sPI
জয়েজকোড

@ জায়েজকোড আমার মেশিনে -এসএ কখনই ফিরে আসবে না, যখন এসএস মাত্র 3.73 সেকেন্ড সময় নিয়েছিল (রাউটারটি সনাক্ত করেছে, আমার পিসি এবং অন্য একটি পিসি)। কোন ধারণা কেন?
রডরিগো

17

arp -nকেবলমাত্র আপনার ল্যানের মধ্যে এমন মেশিনগুলি আপনাকে দেখায় যা আপনার মেশিন ইতিমধ্যে কথা বলেছে। আপনি ব্রডকাস্ট এবং সর্ব-হোস্ট মাল্টিকাস্ট অ্যাড্রেসগুলিকে পিং করে আরও ভাল পপুলেশন করতে সেই তালিকাটি পেতে পারেন:

"সমস্তগুলি" (বাইনারিতে) সম্প্রচারের ঠিকানা। নোট করুন যে বেশিরভাগ আইপি স্ট্যাকগুলি আপনার সংযুক্ত সমস্ত সাবনেটগুলির জন্য এটি সাবনেট সম্প্রচার ঠিকানাগুলিতে অনুবাদ করবে:

ping 255.255.255.255

আপনার বর্তমান সাবনেটের জন্য সাবনেট সম্প্রচারের ঠিকানা। সুতরাং ধরে নিচ্ছি আপনি 192.168.1.0/24 এ আছেন:

ping 192.168.1.255

"সমস্ত হোস্ট" মাল্টিকাস্ট ঠিকানা। আমি এটিকে অনেক পছন্দ করি কারণ অন্যান্য আইপি সাবনেটগুলির জন্য কনফিগার করা হোস্টগুলি সম্ভবত এটির মতো ইথারনেট ল্যানের সাথে সংযুক্ত হওয়ার সম্ভাবনা রয়েছে:

ping 224.0.0.1

মনে রাখবেন যে এই পদ্ধতিটি এবং আমি এখনও অন্য উত্তরগুলিতে উল্লিখিত অন্যান্য পদ্ধতিগুলি কেবলমাত্র বর্তমান নেটওয়ার্কে আইপি-পৌঁছনীয় হোস্টগুলির সন্ধান করুন। এগুলি সম্ভবত আপনার যত্ন নেওয়া দরকার তবে আক্রমণকারীর পক্ষে আইপি এর মাধ্যমে দৃশ্যমান না হয়ে কোনও নেটওয়ার্ক চালানো বা খারাপ কাজ করা সম্ভব।


8

ip neighএবং hostsকোন এনএমএপ প্রয়োজন / NO sudo প্রয়োজন

এটি নির্মাণ করে আপনি পাইথন স্ক্রিপ্ট তৈরি করতে পারেন:

#!/usr/bin/env python

"""List all hosts with their IP adress of the current network."""

import os

out = os.popen('ip neigh').read().splitlines()
for i, line in enumerate(out, start=1):
    ip = line.split(' ')[0]
    h = os.popen('host {}'.format(ip)).read()
    hostname = h.split(' ')[-1]
    print("{:>3}: {} ({})".format(i, hostname.strip(), ip))

এর মাধ্যমে ডাউনলোড করুন

wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py

(বা কেবল arp... আমি এর আগে দেখিনি)


বা ঠিকip neigh | awk '{ print $1 }' | xargs -n1 host
19:10

ip nঅল্পের জন্য. আরও ভাল হতে পারে ip n | grep REACHABLE
পাবলো এ

4

আমি বিদ্যমান উত্তরগুলি যথেষ্ট সন্তুষ্ট খুঁজে পাইনি, তাই আমি ভেবেছিলাম আমি চেষ্টা করে দেখি। সর্বোপরি, FAQ লিঙ্কগুলির জন্য প্রসঙ্গ সরবরাহ করার পরামর্শ দেয়

nmapদুর্দান্ত, যদি ব্যবহার করতে একটু বিভ্রান্ত হয়। স্থানীয় নেটওয়ার্ক ডিভাইসগুলি আবিষ্কার করতে আমি এখানে যা চালিয়েছি তা বেশিরভাগই অনুলিপি-পেস্ট-সক্ষম। nmap -sP(অথবা nmap -sn) দ্বারা স্ক্যান pinging । 'হোস্ট আবিষ্কার' এর জন্য অন্যান্য বিকল্প রয়েছে যেমন nmap -sLবা এর সাথে nmap -Pn

উপায় # 1।

ehtesh@x200arch:~$ # my wireless interface is listed as wlp3s0. Yours could be wlan0 or eth1.
ehtesh@x200arch:~$ ip addr show wlp3s0 | grep "inet "
    inet 172.18.72.53/22 brd 172.18.75.255 scope global wlp3s0
ehtesh@x200arch:~$ arp -a
? (172.18.72.1) at c8:4c:75:76:bd:74 [ether] on wlp3s0
ehtesh@x200arch:~$ nmap -sP 172.18.72.0/24
Starting Nmap 6.41SVN ( http://nmap.org ) at 2013-12-17 20:08 EST
Nmap scan report for 172.18.72.2
Host is up (0.017s latency).
<... 15 IP addresses snipped ...>
Nmap scan report for 172.18.72.253
Host is up (0.13s latency).
Nmap done: 256 IP addresses (17 hosts up) scanned in 5.74 seconds
ehtesh@x200arch:~$ arp -a | sort -n -k 1,1                            
? (172.18.72.126) at ec:35:86:4a:37:d2 [ether] on wlp3s0
? (172.18.72.148) at 10:9a:dd:b8:79:71 [ether] on wlp3s0
? (172.18.72.178) at 9c:20:7b:7b:08:ba [ether] on wlp3s0
? (172.18.72.1) at c8:4c:75:76:bd:74 [ether] on wlp3s0
? (172.18.72.253) at b8:78:2e:19:05:0b [ether] on wlp3s0
? (172.18.72.2) at 00:14:1c:da:e1:c2 [ether] on wlp3s0
? (172.18.72.40) at d8:c7:c8:ca:f9:88 [ether] on wlp3s0
? (172.18.72.43) at d8:c7:c8:ce:0f:60 [ether] on wlp3s0
? (172.18.72.44) at d8:c7:c8:ce:0f:68 [ether] on wlp3s0
? (172.18.72.45) at 6c:f3:7f:c6:71:16 [ether] on wlp3s0
? (172.18.72.46) at 6c:f3:7f:c4:4c:b3 [ether] on wlp3s0
? (172.18.72.47) at d8:c7:c8:ca:f9:88 [ether] on wlp3s0
? (172.18.72.48) at 24:de:c6:c6:b6:78 [ether] on wlp3s0
? (172.18.72.49) at 24:de:c6:c6:b6:e6 [ether] on wlp3s0
? (172.18.72.51) at 00:9c:02:d0:4c:4e [ether] on wlp3s0
? (172.18.72.54) at 00:23:76:99:99:bf [ether] on wlp3s0
? (172.18.72.62) at 8c:70:5a:0d:06:18 [ether] on wlp3s0
? (172.18.72.63) at 7c:e9:d3:51:86:55 [ether] on wlp3s0
? (172.18.72.64) at a0:88:b4:47:eb:c8 [ether] on wlp3s0

উপায় # 2। আমি এই কাজগুলি জানি, তবে এটি যাওয়ার সঠিক উপায় কিনা তা আমি বলতে পারি না।

ehtesh@x200arch:~$ #ifconfig | grep broadcast
ehtesh@x200arch:~$ ip address show wlp3s0 | grep brd
    link/ether 00:1e:65:bf:1b:42 brd ff:ff:ff:ff:ff:ff
    inet 172.18.72.53/22 brd 172.18.75.255 scope global wlp3s0
ehtesh@x200arch:~$ ping -b -c 3 -i 20 172.18.75.255
<... similar output to above ...>

আরও কার্যকর উপায় আছে কিনা তা জানতে পেরে আমি খুশি হব। ততক্ষণ পর্যন্ত আমি এটিকে আঁকড়ে ধরে আছি।


4

উদাহরণস্বরূপ আপনি একটি ছোট লিনাক্স শেল স্ক্রিপ্ট দিয়ে সমস্ত প্রদত্ত সাবনেট পিং করার চেষ্টা করতে পারেন

$ for ip in $(seq 1 254); do ping -c 1 192.168.1.$ip>/dev/null; [ $? -eq 0 ] && echo "192.168.1.$ip UP" || : ; done

আমার ক্ষেত্রে সবার জন্য ইউপি বলেছেন এবং তারপরে ip nসকলকে ব্যর্থ বলুন।
পাবলো এ

3

হান্ট একটি কমান্ড লাইন সরঞ্জাম যা তথ্যের জন্য নেটওয়ার্কে সম্প্রচার করার সাথে সাথে মেশিনগুলির একটি তালিকা তৈরি করতে সক্ষম। এটি নেটওয়ার্কে সক্রিয় ম্যাক ঠিকানাগুলির একটি তালিকা তৈরি করতে টিসিপি, ইউডিপি, আইসিএমপি এবং এআরপি ডেটা ব্যবহার করে। এটি প্যাসিভ টুল যা তারে শোনা দিয়ে কাজ করে।


4
আমি জানি যে ম্যান পেজগুলি রয়েছে, তবে উত্তরের একটি উদাহরণ দেখতে এটি কার্যকর হবে।
এহতেশ চৌধুরী

2

সংযুক্ত ডিভাইসের আরও কমপ্যাক্ট তালিকার জন্য:

nmap -sL 192.168.0.* | grep \(1

ব্যাখ্যা।

nmap -sL 192.168.0.* সাবনেট ওয়ার্কে সমস্ত আইপি তালিকাবদ্ধ করে চিহ্নিত করবে, নাম রয়েছে:

Nmap scan report for 192.168.0.0
Nmap scan report for Dlink-Router.Dlink (192.168.0.1)
Nmap scan report for 192.168.0.2
...
Nmap scan report for android-473e80f183648322.Dlink (192.168.0.53)
...
Nmap scan report for 192.168.0.255

সমস্ত আকর্ষণীয় রেকর্ডগুলি প্রথম বন্ধনী (এবং অঙ্কের সাথে শুরু হওয়ার সাথে সাথে 1আমরা এটির জন্য ফিল্টার করি | grep \(1(প্রথম বন্ধন থেকে বাঁচতে ব্যাকস্ল্যাশ প্রয়োজন)

ক্রি্ক
সাবধান যে দুটি ডিভাইসে যদি একই নাম থাকে তবে nmapকেবল একটিই প্রদর্শিত হবে যা সর্বশেষ রাউটারের সাথে সংযুক্ত ছিল


2

আইপি অ্যাড্রেসগুলির একটি ব্যাপ্তির স্থিতি স্ক্যান করতে, এটি দুর্দান্ত এবং সহজ:

sudo nmap -sn 192.168.1.2-20

কোথায়:

         -sn: Ping Scan - disable port scan

বিঃদ্রঃ:

  • Nmap এর আগের রিলিজগুলিতে, -snহিসাবে পরিচিত ছিল-sP

আমি ম্যাক ওএস এক্সে এটি করেছি (যা বিএসডি ভিত্তিক)। লিনাক্স সংস্করণে কোনও পার্থক্য রয়েছে কিনা তা আমি নিশ্চিত নই।


1
উজ্জ্বল, আমাকে যা করতে হয়েছিল তা টাইপ করতে হয়েছিল: sudo nmap -sP 192.168.178.0-255। আমি যে সাবনেটে আছি তাতে এটি স্ক্যান করেছিল
লিও গারবার

2

আপনি ফপিং ব্যবহার করতে পারেন sudo apt-get install fping( ডিবিয়ানের মতো ওএসগুলিতে )।

ফাইপিং পিংয়ের মতো, তবে একাধিক হোস্টকে পিং করার সময় আরও ভাল পারফর্ম করা। -R 1 পতাকা শুধুমাত্র একটি বৃত্তাকার সম্পাদন করতে fping নির্দেশ দেওয়া হয়। 2> 1 অংশ আউটপুট ফিল্টার করতে, grep পারেন।

$ fping -g -r 1 192.168.1.0/24 2>1 | grep "alive"

এর মতো কিছু প্রদর্শন করবে:

192.168.1.1 is alive
192.168.1.10 is alive
192.168.1.15 is alive
192.168.1.27 is alive

এনএমএপের জন্য একটি আকর্ষণীয় পতাকাও রয়েছে যা আপনাকে ম্যাক বিক্রেতা দেখতে দেয় - যদি জানা থাকে। ম্যাকের ঠিকানাগুলি দেখতে সুডো সহ ব্যবহার করুন ।

$ sudo nmap -sP 192.168.1.0/24

আপনি উদাহরণস্বরূপ পাবেন:

Starting Nmap 7.40 ( https://nmap.org ) at 2019-05-23 18:49 CEST
Nmap scan report for 192.168.1.14
Host is up (-0.036s latency).
MAC Address: 20:F4:1B:E5:8F:7B (Shenzhen Bilian electronic)
Nmap scan report for 192.168.1.15
Host is up (-0.084s latency).
MAC Address: A4:31:35:E8:58:9E (Apple)
Nmap scan report for 192.168.1.27
Host is up (-0.15s latency).
MAC Address: 34:8A:7B:38:E3:14 (Samsung Electronics)
Nmap scan report for 192.168.1.29
Host is up (0.010s latency).
MAC Address: 80:2B:F9:75:F8:FF (Unknown)
Nmap scan report for 192.168.1.10
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 25.52 seconds

1

1. বিকল্প সমাধান যদি সম্প্রচারিত হয় এবং nmapনা পাওয়া যায়:

seq 254 | xargs -iIP -P255 ping -c1 192.168.2.IP |grep time=
arp -a

2A। অথবা কেবল আপনার ডোমেন নেম সার্ভারটি জিজ্ঞাসা করুন :

seq 254| awk '{print "192.168.2."$1}' |nslookup | grep name

2b। অজানা

echo -e 192.168.2.{1..10}"\n" |nslookup |grep name
  1. সমান্তরালে 192.168.2.0/24 সাবনেটে সমস্ত পিংযোগ্য নেটওয়ার্ক-ডিভাইসগুলিকে পিং করে (রানের সময় কমাতে)। এরপরে arpপ্রতিটি ডিভাইস প্রদর্শন করা উচিত, যা উত্তর দিয়েছে।

  2. সক্রিয় বা বর্তমান সংযোগগুলির জন্য যাচাই করে না, তবে স্থানীয় ডোমেন পরিষেবাটি এমন একটি সংযোগের তালিকা দেয় যা এমনকি সত্যিকারের পুরানো।

আরও বিস্তারিত ব্যাখ্যা:

  • seq 2541 থেকে 254 পর্যন্ত সমস্ত সংখ্যা তৈরি করতে (100 থেকে 150 পর্যন্ত সমস্ত সংখ্যার জন্য seq 100 150)
  • xargsকল pingএবং "আইপি" (প্রতিস্থাপন -iIPসঙ্গে) seqstdin থেকে uence নম্বর, প্রথম 192.168.2.1 তাই 192.168.2.IP পরিবর্তন seqনম্বর, -Pনির্দিষ্ট করে সমবর্তী সংখ্যা pingপ্রসেস xargsশুরু করা উচিত, আমি ঠিকানাগুলি হিসাবে একই পরিমাণ +1 টি চয়ন করুন ( = 254) আমি আগ্রহী।
  • pingxargs ( 192.168.2.IP) দ্বারা সংশোধিত আইপি-ঠিকানা সহ এবং কেবল একবার পিং ( -c1); এক্ষেত্রে -iআর্গুমেন্টের জন্য xargs এর জন্য নির্দিষ্ট হিসাবে আপনাকে একই শনাক্তকারী ব্যবহার করতে হবেIP
  • grep time= অতিরিক্ত অতিরিক্ত তথ্য সম্বলিত প্রতিটি লাইন অপসারণ করতে, আমরা কেবলমাত্র উত্তরগুলিতে আগ্রহী, যা একটি রাউন্ড ট্রিপ সময় সরবরাহ করে (= একটি প্রতিক্রিয়া পেয়েছে)
  • arp -a বৈধ নাম (আইপি) জোড়া প্রদর্শন করতে

আমি এটিকে আমার পিংল কমান্ড বলছি এবং এটি একটি উলামের উপরে উপলব্ধ করে রেখেছি~/.bashrc :

alias pingall='seq 254 | xargs -iIP -P255 ping -c1 192.168.2.IP |grep time='
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.