Câu hỏi Làm thế nào tôi có thể liệt kê tất cả các IP trong mạng được kết nối, thông qua Terminal tốt nhất?


Sử dụng Ubuntu 10.10, tôi đã tự hỏi nếu có một lệnh dòng lệnh có thể liệt kê tất cả các IP của các thiết bị kết nối với mạng?

Tôi sẽ sử dụng ví dụ này, để liệt kê tất cả các máy tính kết nối với mạng gia đình của tôi. Lý tưởng nhất, nó cần phải được dòng lệnh như tôi sẽ chạy nó từ C + +.

Bất kỳ ý tưởng?


195
2018-03-24 13:27


gốc


askubuntu.com/questions/82480/… || serverfault.com/questions/72380/… - Ciro Santilli 新疆改造中心 六四事件 法轮功
Nhiều bản sao hơn: 1.  Nhận tất cả IP của thiết bị được kết nối với cùng một bộ định tuyến. 2.  Hiển thị danh sách các máy tính trên mạng LAN trong Linux - Alexander Malakhov
3.  Phương pháp và công cụ tốt nhất để quét IP cục bộ - Alexander Malakhov


Các câu trả lời:


Kiểm tra arp-scan lệnh - có thể bạn sẽ phải cài đặt nó, ví dụ:

sudo apt-get install arp-scan

http://manpages.ubuntu.com/manpages/hardy/man1/arp-scan.1.html

Và để cung cấp thêm chi tiết:

sudo arp-scan --interface=eth0 --localnet

Nơi eth0 là thiết bị của bạn. Bạn có thể tìm thấy thiết bị của mình với:

ifconfig

217
2018-03-24 13:37



Hoàn hảo, cảm ơn bạn. Trả về chính xác định dạng tôi cần. - Christopher Gwilliams
Hoạt động hoàn hảo trên OSX quá! Cài đặt với Brew, và giao diện là en0, chứ không phải là eth0, nhưng hoạt động tốt. - nthonygreen
Nếu bạn kết nối với mạng của bạn bằng cách sử dụng wifi wlan0 thay vì eth0. - Neil
Bạn có thể nhận được điều này để liệt kê tên máy chủ cũng như địa chỉ IP không? - user1527227
Cần lưu ý rằng điều này không sử dụng bộ nhớ cache ARP: nó thực hiện quét thực tế. Không giống như hầu hết các bản quét nmap, điều này không thể vượt qua ranh giới lớp 3, mà thường là những gì bạn muốn trong kịch bản này. (Nói cách khác, nó được giới hạn trong mạng con của bạn.) - Zenexer


Sử dụng nmap. thí dụ: nmap -sn 10.10.10.0/24 Bộ nhớ cache arp sẽ chỉ cho bạn biết những người mà bạn đã cố gắng liên hệ gần đây.


104
2018-03-24 13:38



là 10.10.10.0 IP đã cho của tôi? 24 trong trường hợp này là gì? Cảm ơn. - kolonel
@ kolonel Đó chỉ là một ví dụ. Bạn nên thay thế nó bằng mạng của bạn. 24 là "ký hiệu gạch chéo" của mặt nạ mạng con. Nó có nghĩa là sử dụng 24 bit từ bên trái. Nó tương đương với 255.255.255.0. - Keith
@ Bạn có biết làm thế nào tôi muốn tìm ra địa chỉ mạng của tôi để sử dụng? Hoặc là nó chỉ IP của tôi với 0/24 vào cuối? - TMH
@kolonel:en.wikipedia.org/wiki/Classless_Inter-Domain_Routing - arkod


Trong cửa sổ này sẽ là "arp -a"Tôi tin rằng tương đương với điều đó trong Linux sẽ là"arp -e".

Thông tin này có thể được tìm thấy từ trang man cho arp:

arp with no mode specifier will print the current content of the table.
-e : Use default Linux style output format (with fixed columns).

19
2018-03-24 13:33



Có vẻ như nó hoạt động (có thể cần phải có một chơi như tôi đang ở trên một mạng công cộng vì vậy nó chỉ có vẻ để liệt kê tất cả các máy chủ trên mạng. - Christopher Gwilliams
Nếu tôi đang ở trên một mạng gia đình, nó sẽ chỉ liệt kê các thiết bị được kết nối với bộ định tuyến của tôi? Cảm ơn! - Christopher Gwilliams
Lệnh đó sẽ chỉ liệt kê các thiết bị trong bộ nhớ cache arp hiện tại của máy chủ và sẽ chỉ là những thiết bị mà máy chủ đã liên lạc gần đây. - Linker3000
Cả hai đều hoạt động trên Linux, nhưng arp -a hiển thị (tất cả) máy chủ theo kiểu thay thế (BSD). Chạy nhanh arp không giống như chạy arp -e beacuse đó là mặc định. - simplegamer


Nếu mạng của bạn là 192.168.0.0/24, tạo một tệp thi hành với mã sau; Thay đổi 192.168.0 vào mạng thực tế của bạn.

#!/bin/bash
for ip in 192.168.0.{1..254}; do
  ping -c 1 -W 1 $ip | grep "64 bytes" &
done

13
2018-05-17 18:45



Hi Anders ... Mạng của người dùng có thể không phải là 192.168.0.0/24; Tôi đã ghi chú. Định dạng của trang web không giống như định dạng # !, và do đó định dạng đoạn mã: khi nhập mã, hãy sử dụng các nút văn bản blockquote hoặc định dạng sẵn và xem lại câu trả lời của bạn để định dạng đúng trước khi gửi, như trả về, tab, và không gian có thể đã bị tước. - Nevin Williams
Đồng thời, khi cung cấp một tập lệnh cần được đưa vào một tệp và được thực thi, thay vì chỉ cần cắt và dán, có lẽ tốt nhất là bạn chỉ định điều này; nó có thể không được rõ ràng với một số tất cả những gì được yêu cầu để thực hiện giải pháp của bạn. - Nevin Williams
Về mặt kỹ thuật, điều này sẽ chỉ trả về các máy chủ phản hồi ping. Có thể có các máy chủ được kết nối nhưng không trả lời các yêu cầu echo ICMP. Đồng thời, người ta có thể phát một gói cho toàn bộ mạng bằng cách chỉ định địa chỉ quảng bá, là địa chỉ cuối cùng trong mạng IP: ping -c 1 -W 1 192.168.0.255 sẽ thực hiện tương tự như vòng lặp for. - Nevin Williams
@NevinWilliams (bắt buộc -b, đã xóa -W để chờ thêm) ping -b -c 1 192.168.0.255 kết quả "1 gói truyền, 0 nhận, mất gói 100%, thời gian 0ms" - Aquarius Power


Thử cài đặt nmap (sudo apt-get install nmap) và loại nmap 192.168.1.0/24 thay thế 192.168.1 với ba phần đầu tiên của địa chỉ ip của bạn (tìm hiểu cách sử dụng ip addr).

Bạn cũng có thể có được bản đồ của mạng một cách ít chính xác hơn (theo kinh nghiệm của tôi) bằng cách chạy ping 192.168.1.255 (một lần nữa thay thế 192.168.1), cái nào Nên cấp một ping với mọi máy trên mạng, nhưng theo kinh nghiệm của tôi, không phải lúc nào cũng hoạt động chính xác.


10
2017-09-08 18:56



Trên thực tế, không có câu trả lời nào sẽ luôn hoạt động chính xác. IP không được thiết kế với yêu cầu này trong tâm trí, và có những thứ như Private VLAN mà làm cho nó không thể tìm thấy bất kỳ máy chủ khác trên cùng một mạng LAN. - Ron Maupin


Đến với những điều sau đây trên một nexus sử dụng tmux như arp-scan không có trong repo nmap được cài đặt sẵn, chỉ hiển thị địa chỉ ip:

nmap -sn 192.168.1.1-254/24 | egrep "scan report" | awk '{print $5}'

2
2017-10-30 20:33





Để có danh sách thiết bị được kết nối gọn hơn:

nmap -sL 192.168.0.* | grep \(1

Giải trình.

nmap -sL 192.168.0.* sẽ liệt kê tất cả các IP trong mạng con và đánh dấu các địa chỉ IP đó, có tên:

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

Vì tất cả các bản ghi thú vị bắt đầu bằng dấu ngoặc đơn ( và chữ số 1, chúng tôi lọc cho rằng với | grep \(1 (dấu gạch chéo ngược là cần thiết để thoát khỏi dấu ngoặc đơn)

Quirk
Hãy coi chừng nếu hai thiết bị có cùng tên, nmap sẽ chỉ hiển thị cái đã được kết nối với bộ định tuyến Cuối cùng


0
2017-10-20 10:32



Nếu bạn có câu trả lời giống hệt nhau cho hai câu hỏi thì có thể đáng xem xét việc gắn cờ các câu hỏi là trùng lặp thay vì đăng câu trả lời trùng lặp. Bằng cách đó, kiến ​​thức có thể được chia sẻ khi các câu hỏi tương tự được liên kết với nhau. - Mokubai♦
@Mokubai Bạn nói đúng, tôi đã thêm bình luận cho OP. Điều này cho thấy một vấn đề thú vị. A nhanh chóng tìm kiếm đã phát hiện 6 bản sao (liên kết Q và 5 này) trên 4 trang mạng (SU, Hỏi Ubuntu, SF, Unix). Chắc chắn có nhiều hơn nữa! Làm cách nào để xử lý việc này? Lý tưởng nhất, mỗi 6 bài đăng này nên liên kết với 5 bài đăng khác. Thêm tất cả các liên kết bằng tay rõ ràng không quy mô. Vì vậy, bây giờ tôi đã liên kết với bài đăng này (được upvoted nhiều nhất). Một vấn đề khác là không thể đánh dấu Q trên AskUbuntu là bản sao của Q trên SU. Hm ... Có lẽ, điều này đã được thảo luận về meta? - Alexander Malakhov
không hoạt động với tôi trên Centos 7, chỉ liệt kê mọi địa chỉ IP có thể có trong mạng mà không có tên. arp-scan đã làm việc cho tôi. - Jeff


Đánh dấu câu trả lời của Anders Larrson -

#!/bin/bash
function scan ()
{
    for ip in $1.{1..254}; do
        ping -c 1 -W 1 $ip &
    done | sed -nE 's:^.* from ([0-9.]+).*time=(.*s)$:\1 (\2):p'
}

if [ $1 ]; then
    for baseip; do
        scan $baseip
    done
else
    scan 192.168.1
fi

0
2017-07-06 10:04