Tôi đã có một số máy Mac trên mạng gia đình của mình và chỉ truy cập vỏ cho một trong số chúng từ bên ngoài. Làm thế nào tôi có thể tìm ra địa chỉ IP của các máy khác là gì?
Tôi đã có một số máy Mac trên mạng gia đình của mình và chỉ truy cập vỏ cho một trong số chúng từ bên ngoài. Làm thế nào tôi có thể tìm ra địa chỉ IP của các máy khác là gì?
Câu trả lời:
Hãy thử arp -a
xem bảng arp hiện tại của máy tính của bạn. Nó sẽ chỉ hiển thị những địa chỉ IP mà máy tính của bạn đã tương tác. Đầu ra như thế này (bị che khuất một chút để ẩn địa chỉ MAC trên mạng của tôi):
$ arp -a
? (10.1.168.1) at xx:xx:9e:82:ab:f6 on en1 ifscope [ethernet]
? (10.1.168.16) at xx:xx:29:d3:17:8 on en1 ifscope [ethernet]
? (10.1.168.115) at xx:xx:2:4f:76:14 on en1 ifscope [ethernet]
? (10.1.168.131) at xx:xx:6b:d0:36:a5 on en1 ifscope [ethernet]
? (10.1.168.134) at (incomplete) on en1 ifscope [ethernet]
? (10.1.168.137) at xx:xx:65:46:cd:b8 on en1 ifscope [ethernet]
? (10.1.168.255) at ff:ff:ff:ff:ff:ff on en1 ifscope [ethernet]
? (192.168.4.255) at ff:ff:ff:ff:ff:ff on vmnet8 ifscope [ethernet]
? (192.168.110.255) at (incomplete) on vmnet1 ifscope [ethernet]
Nếu bạn không có thêm thông tin về máy tính nào, bạn có thể lấy thêm một chút thông tin bằng cách xác định các nhà sản xuất card mạng thông qua tra cứu địa chỉ MAC .
arp -a
sẽ chỉ hiển thị những địa chỉ IP mà máy tính của bạn đã tương tác." ? Tôi có nên ping phát sóng (192.168.110.255) trước và nhận phản hồi từ mọi thiết bị và sau đó sử dụng arp để nhận danh sách đầy đủ vì tôi chỉ tương tác / ping tất cả thiết bị?
Giả sử tất cả các máy khác nằm trong cùng một miền quảng bá như máy mà bạn có quyền truy cập, việc ping địa chỉ quảng bá thường sẽ đủ. Nó sẽ không tìm thấy các máy đang ngủ, cũng không phải các máy được cấu hình để không phản hồi với ping, cũng không phải các máy sẽ phản hồi ping nhưng không phát ping.
% ifconfig -a | grep broadcast
inet 192.168.1.241 netmask 0xffffff00 broadcast 192.168.1.255
% ping -i 5 -c 2 192.168.1.255
PING 192.168.1.255 (192.168.1.255): 56 data bytes
64 bytes from 192.168.1.241: icmp_seq=0 ttl=64 time=0.393 ms
64 bytes from 192.168.1.254: icmp_seq=0 ttl=255 time=2.511 ms (DUP!)
64 bytes from 192.168.1.65: icmp_seq=0 ttl=64 time=5.810 ms (DUP!)
64 bytes from 192.168.1.255: icmp_seq=0 ttl=64 time=7.886 ms (DUP!)
64 bytes from 192.168.1.241: icmp_seq=1 ttl=64 time=0.312 ms
--- 192.168.1.255 ping statistics ---
2 packets transmitted, 2 packets received, +3 duplicates, 0% packet loss
round-trip min/avg/max/stddev = 0.312/3.382/7.886/3.010 ms
Phản hồi đầu tiên và cuối cùng sẽ luôn luôn là máy cục bộ của bạn. Các (DUP!)
phản hồi là từ các máy khác (mặc dù ví dụ này cũng cho thấy một số máy phản hồi với chính địa chỉ quảng bá, điều này không hữu ích lắm).
Bạn cũng có thể thử địa chỉ phát sóng tất cả những người:
% ping -i 5 -c 2 255.255.255.255
PING 255.255.255.255 (255.255.255.255): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.392 ms
64 bytes from 192.168.1.254: icmp_seq=0 ttl=255 time=3.053 ms (DUP!)
64 bytes from 192.168.1.65: icmp_seq=0 ttl=64 time=8.685 ms (DUP!)
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.319 ms
--- 255.255.255.255 ping statistics ---
2 packets transmitted, 2 packets received, +2 duplicates, 0% packet loss
round-trip min/avg/max/stddev = 0.319/3.112/8.685/3.401 ms
Ví dụ này cho thấy ít hành trình hơn. Tất cả (DUP!)
các máy là các máy khác và máy cục bộ dễ dàng được xác định là 127.0.0.1.
Tất cả máy Mac của bạn đều có tên máy chủ nên bạn không cần biết địa chỉ IP. Thay vào đó, bạn sẽ chỉ sử dụng tên máy chủ.
Tên máy chủ được dựa trên bất kỳ tên nào bạn đã đặt cho máy tính. Vì vậy, nếu máy tính được đặt tên là "Jon's Mac" thì tên máy chủ bạn sẽ sử dụng là "jons-mac.local".
$ ssh jons-mac.local
Nếu bạn chưa biết tên máy chủ của máy tính thì bạn có thể tìm tên máy chủ của máy tính trong tùy chọn chia sẻ trên máy tính đó hoặc bạn có thể tìm tên máy chủ của các máy tính khác trên mạng bằng lệnh dns-sd. Lệnh này sử dụng Bonjour để cho phép bạn duyệt các dịch vụ mạng; bạn sẽ chỉ tìm thấy các máy tính thực sự đang quảng cáo một số dịch vụ mạng (mà, nói chung, là những máy tính duy nhất bạn quan tâm).
Nếu bạn muốn kết nối với một số máy tính cung cấp ssh, bạn có thể tìm thấy các máy tính có sẵn bằng cách sử dụng:
dns-sd -B _ssh._tcp .
Nói chung, bạn có thể tìm kiếm các máy chủ cung cấp dịch vụ cụ thể bằng tên dịch vụ: http://www.dns-sd.org/ServiceTypes.html
Giao thức Bonjour cũng cung cấp khả năng duyệt cho tất cả các dịch vụ, không chỉ các dịch vụ cụ thể. Bạn có thể làm điều này bằng cách duyệt tìm dịch vụ đặc biệt_services._dns-sd._udp
dns-sd -B _services._dns-sd._udp .
Câu hỏi là hỏi về việc tìm các máy tính khác trên mạng từ dòng lệnh, nhưng bạn cũng có thể duyệt các dịch vụ được quảng cáo dns-sd trong GUI. Ví dụ: Terminal.app> Kết nối từ xa mới ... sẽ hiển thị một cửa sổ hiển thị các dịch vụ ssh, sftp, ftp và telnet được quảng cáo.
dns-sd -B _ssh._tcp .
sẽ chạy để chạy?
Bạn có thể thử sử dụng dns-sd
để thực hiện các truy vấn Bonjour trên mạng LAN.
dns-sd -B _ssh._tcp .
Có thể đó là một chút quá mức nhưng bạn có thể sử dụng nmap
Một CLI nhanh chóng một lớp để bước qua / 24 mạng con ping mỗi địa chỉ IP. Nhanh chóng và loại bẩn, nhưng nó hoạt động.
for (( x=1; x <= 254; x++ )); do ping -c 3 192.168.0.$x; done
Giải thích: Để thay đổi phạm vi, thay đổi x = 1 thành x = 130 hoặc bất cứ điều gì bạn muốn bắt đầu và 254 đến cuối, giả sử 135.
for (( x=130; x <= 135; x++ ));
ping -c 3 là gửi ba ping. Để thay đổi số lượng ping thay đổi 3 thành một số khác và để thay đổi phạm vi địa chỉ, hãy thay đổi 192.168.0 thành một số khác.
do ping -c 30 10.10.0.$x;
fping -ag 172.16.0.0/16
Nếu bạn biết tên của các máy tính khác trong mạng LAN, cách đơn giản nhất là ping chúng:
$ ping foobar
Pinging foobar.lan [192.168.0.25] with 32 bytes of data:
Reply from 192.168.0.25: bytes=32 time<1ms TTL=64
Reply from 192.168.0.25: bytes=32 time<1ms TTL=64
Điều này có thể phụ thuộc vào bộ định tuyến hoặc máy chủ DHCP cục bộ của bạn. Nếu tên máy chủ trống không hoạt động, hãy thử nối thêm .local (nghĩa là ping hostname.local ).
Rõ ràng điều này không hoạt động tốt cho mạng LAN lớn hoặc những người có trí nhớ kém.
Nếu bạn đang sử dụng máy Mac, (giả sử 10,5 trở lên,) chỉ cần bật VNC để truy cập máy tính để bàn và sử dụng Flame.app.
Đó là một tiện ích nhỏ thực sự tốt đẹp cung cấp cho bạn chính xác những gì bạn cần, thực sự nhanh chóng. Điều duy nhất là bạn sẽ phải đi xa hơn SSH.
Cho cửa sổ:
1) Viết: cho / L% I trong (1,1.254) DO ping -w 30 -n 1 168,29.0.% I Điều này sẽ ping tất cả các địa chỉ trong mạng cục bộ của bạn
2) Sau đó viết: arp -a Điều này sẽ cung cấp cho bạn tất cả các địa chỉ đã trả lời