Làm cách nào để biết địa chỉ IP của các máy tính khác trong mạng của tôi?


51

Nói rằng tôi có hai máy tính kết nối với cùng một mạng. Tôi biết rằng từ computer1 và chia sẻ tệp được bật, tôi có thể rình mò bên trong computer2. Nhưng hãy nói rằng có một cái gì đó thú vị trên máy tính2, mà bạn truy cập bằng cách gõ localhost: 9091 trong safari. (ví dụ: giao diện người dùng web của truyền). Để truy cập, tôi sẽ phải nhập ip_address_of_computer2: 9091 trên computer1.

Nhưng làm thế nào để tôi tìm ra địa chỉ IP của computer2 mà không sử dụng computer2?


Bạn có biết tên máy tính2 không?
user151019

Câu trả lời:


82

Phương pháp số 1

Cách dễ nhất là truy cập trang quản trị của bộ định tuyến mạng của bạn. Nó sẽ có thông tin về bất kỳ thiết bị nào khác trên mạng, bao gồm địa chỉ IP.

Phương pháp # 2

Nếu bạn biết tên mạng của máy tính, bạn có thể đặt tên pingtrong Terminal. Nó sẽ trả về địa chỉ IP của máy tính.

Phương pháp số 3

Nếu bạn không biết tên mạng của máy tính, có một mẹo khác bạn có thể thực hiện bằng cách sử dụng ping. Tìm địa chỉ IP và mặt nạ mạng con của bạn. Cả hai sẽ được hiển thị trong ngăn tùy chọn Mạng của Tùy chọn hệ thống. Sắp xếp địa chỉ IP và mặt nạ mạng con của bạn và thay thế bất kỳ 0giá trị nào trong mặt nạ mạng con bằng 255cùng một vị trí tương đối của địa chỉ IP. Ví dụ: nếu bạn có địa chỉ IP và mặt nạ mạng con sau đây, tương ứng:

192.168.1.151

255.255.255.0

Trường 0nằm trong trường cuối cùng của mặt nạ mạng con, vì vậy bạn thay thế trường cuối cùng của địa chỉ IP bằng 255và ping nó:ping 192.168.1.255

Bạn sẽ nhận được phản hồi với địa chỉ IP của bất kỳ thiết bị nào trên mạng có khả năng phản hồi ping.

Phương pháp số 4

Thủ thuật cuối cùng là sử dụng lệnh terminal arp -a. Điều này sẽ hiển thị địa chỉ IP và MAC của tất cả các thiết bị trên mạng mà nó biết.

Cuối cùng hai thủ đoạn biếu không của này bài viết Macworld.


8
Phương pháp # 4 arp -a sẽ hoạt động nếu và chỉ khi Mac đã được thăm dò thành công hoặc được kết nối với máy chủ. Hãy tự thử bằng cách khởi động lại máy Mac của bạn và hiển thị bảng arp. Nó sẽ gần như trống rỗng. Để điền vào bảng đó, bạn cần chạy một cái gì đó như quét ping:nmap -sP 192.168.1.0/24
ripat

Vì một số lý do, ping 192.168.1.255 trả về địa chỉ từ tất cả các máy Mac trong mạng, nhưng không có địa chỉ nào từ các máy Linux?!? Mẹo tuyệt vời mặc dù!
ssc

1
ping SOME-PC -4để giải quyết IPV4.
Nakilon

Điều này có hoạt động nếu bạn đang ping máy tính windows?
Cullub

1
@cullub Vâng, nó hoạt động trong windows. ping adminPCping máy tính adminPC và hiển thị địa chỉ IP. Và như Nakilon đã nhận xét, ping adminPC -4hiển thị IPv4.
May mắn

19

Gõ lệnh

  arp -a

Điều này sẽ cho bạn thấy tất cả các kết nối từng cái một.


Điều này dường như không hoạt động đối với một số thiết bị. Tôi không chắc là do các thiết bị không "nghe" hay là do các hệ điều hành khác nhau nhưng tôi đang dùng thử ngay bây giờ và arp -akhông chọn một trong các hộp linux của mình.
Jacksonkr

Lần đầu tiên bạn nói chuyện với một thiết bị khác trên máy tính, máy tính của bạn cần phân giải IP -> MAC và do đó, nó sẽ phát "ai có IP xxx.yyy.zzz.aaa?", Và chủ sở hữu của IP đó phản hồi ( phát sóng) với "tôi!", và tất nhiên gói đó có MAC nguồn trong đó. Nếu giao dịch đó không được thực hiện trong khi thiết bị của bạn nằm trên mạng, nó sẽ không có mục ARP cho nó. Do đó: không phải tất cả các thiết bị đều hiển thị trong bảng ARP, nhưng có thể hiển thị trong các bảng ARP của các thiết bị khác.
Harvest

4

H: Làm cách nào để biết địa chỉ IP của các máy tính khác trong mạng của tôi ?

Rất nhiều mạng

Vâng, trước hết máy tính của bạn có lẽ là trên rất nhiều mạng . Bạn có thể thấy điều này với ifconfiglệnh. Có rất nhiều thông tin trong đó, nhưng hầu hết trong số đó là quá nhiều, vì vậy tôi thích lọc như vậy:

$ ifconfig | grep -E '^[a-z0-9]|inet '

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.0.101 netmask 0xffffff00 broadcast 192.168.0.255
en1: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
en2: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
    inet 172.141.0.10 --> 172.141.0.9 netmask 0xffffffff
en5: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    inet 169.254.146.193 netmask 0xffff0000 broadcast 169.254.255.255
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.3.1 netmask 0xffffff00 broadcast 192.168.3.255

Trường đầu tiên của các đường thẳng bên trái là tên giao diện mạng. Bạn có wifi en0. Đường hầm VPN của tôi đến AWS là utun1. Tùy chọn hệ thống của tôi> Chia sẻ> Chia sẻ Internet được tạo bridge100cho RaspberryPi Tôi có internet từ MacBook Pro thông qua khóa ethernet của mình.

Giả sử IPv4

Bởi vì bạn đã hỏi địa chỉ IP, tôi cho rằng địa chỉ IPv4 là những gì bạn quan tâm. Tôi đã sử dụng "inet" (có khoảng trắng) để chặn các mục "inet6" cho IPv6. Nếu bạn muốn IPv6, có lẽ bạn biết nhiều về mạng hơn tôi và tôi nên hỏi bạn câu hỏi.

Tìm máy chủ

Hãy tập trung vào đó bridge100và mang lại cho bạn một lưu lượng truy cập Google nhỏ. Rất nhiều người gặp phải tình huống này khi họ muốn SSH hoặc RDC vào một máy tính không đầu (như RaspberryPi ) trên mạng của họ hoặc kết nối thông qua Internet Sharing . Điều này đặc biệt khó khăn khi bạn không có lịch sử kết nối (bảng arp) với thiết bị. Đối với điều này, bạn có thể sử dụng sudo nmap -sn 192.168.3.0/24, đó là giá trị của cầu 100 inet (192.168.3.1) với chữ số cuối cùng được thay thế bằng "0/24". Tuy nhiên, nmap không phải là tiêu chuẩn trên OSX vì vậy chúng tôi có thể cài đặt nó với homebrew .

$ brew install nmap
Warning: nmap-7.31 already installed

$ sudo nmap -sn 192.168.3.0/24
Password:

Starting Nmap 7.31 ( https://nmap.org ) at 2016-11-21 22:03 EST
Nmap scan report for 192.168.3.6
Host is up (0.00025s latency).
Nmap scan report for 192.168.3.1
Host is up.
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.08 seconds

Từ đó bạn có thể cho rằng RaspberyPi của tôi có IP 192.168.3.6vì một số lý do. Lần trước khi tôi kết nối, tôi đã ở một mạng con khác và nó đã nhận được 192.168.2.3. Thủ thuật nmap đó tốt hơn rất nhiều so với việc gõ ping 192.168.3.2... ping 192.168.3.6cho đến khi bạn tìm thấy nó.

Tôi hy vọng điều đó sẽ giúp.


3

Có một vài công cụ khác chưa được đề cập để khám phá thông tin địa chỉ IP, giả sử bạn có tên máy chủ và bạn đang sử dụng mDNS (còn gọi là Bonjour trong môi trường Mac). Trừ khi bạn đã cấu hình mọi thứ một cách khác nhau, tên mạng cục bộ của bạn ở dạng host-name.localnên trong ví dụ ban đầu của bạn, bạn sẽ tìm kiếmcomputer2.local

Thứ nhất:

    dscacheutil -q host -a name <host-name>.local

Ví dụ:

    % dscacheutil -q host -a name computer2.local
    name: computer2.local
    ip_address: 10.0.1.6

Một công cụ hữu ích khác là dig( dig google.comví dụ thử ), với một vài tham số đặc biệt có thể được sử dụng để truy vấn các nút mDNS của mạng cục bộ của bạn.

    % dig @224.0.0.251 -p 5353 <host-name>.local
    % dig @224.0.0.251 -p 5353 -x <ip-address>

Để lấy địa chỉ IP ra khỏi digbạn có thể thử:

    % dig +short @224.0.0.251 -p 5353 <host-name>.local

Thật tốt khi nó yêu cầu phải biết địa chỉ IP hoặc tên multicastDNS của máy tính (.local).
Florian Bidabe

BonjourBrowser là một ứng dụng GUI đẹp cho việc này.
Florian Bidabe

@FlorianBidabe - Tại sao bạn nói bạn cần biết địa chỉ IP để sử dụng các lệnh này? Các lệnh này trả về địa chỉ IP của máy được đặt tên. Có, cần phải biết tên của máy mục tiêu để sử dụng phương pháp này.
KenB

3

Kịch bản này sẽ cung cấp cho bạn những gì bạn đang tìm kiếm thực sự nhanh chóng và yêu cầu phải cài đặt nmap. Ưu điểm là nếu máy chủ của bạn không trả lời các đầu dò ping, nmap vẫn sẽ tìm thấy máy chủ trong khi các công cụ khác thì không.

#!/bin/bash
i="en1" # edit this to fit your Network interface
cidr=$(while read y; do echo ${y%.*}".0/$(m=0; while read -n 1 x && [ $x = f ]; do m=$[m+4]; done < <(ifconfig $i | awk '/mask/             {$4=substr($4,3); print $4}'); echo $m )"; done < <(ifconfig $i | awk '/inet[ ]/{print $2}') | head -n 1 | sed s/addr://g | sed 's/\/0//g')
myip=`ifconfig $i | grep "inet " | awk 'NR==1 {print $2}' | sed s/addr://g`
set -x
sudo nmap -n -T4 -PN -p9091 --exclude "$myip" "$cidr"

Lưu trữ tập lệnh này lookup.shvà gọi nó (chuyển sang tiếng Anh) với

LANG=c bash lookup.sh

Làm thế nào để bạn tiết kiệm và chạy nó?
Daniel Pendergast

Bạn dán tệp này vào TextEditor, lưu và đặt tên tệp này là "qnmap". Sau đó, bạn di chuyển tệp này sang / usr / bin (Giữ lệnh + Shift + G hoặc Finder / Go / Chuyển đến thư mục: / usr / bin). thiết bị đầu cuối mở, gõ "sudo chmod a + x / usr / bin / qnmap". Nhập "qnmap" trong thiết bị đầu cuối và chờ kết quả.
Florian Bidabe

Đồng ý. Tôi nhận được lỗi này: /usr/bin/qnmap: line 2: =en1: command not foundCó vẻ như ký hiệu đô la trước khi ikhông nên ở đó.
Daniel Pendergast

1
Xin lỗi Dan, xấu của tôi, dòng nên là: i = "en1"
Florian Bidabe

Mát mẻ. Nó hoạt động tốt.
Daniel Pendergast

2

Bạn cũng có thể sử dụng netstat để hiển thị địa chỉ mạng:

roger.moore@WKSTCAL0141 ~
$ netstat -n

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    127.0.0.1:11235        127.0.0.1:49184        ESTABLISHED
  TCP    127.0.0.1:49155        127.0.0.1:49156        ESTABLISHED
  TCP    127.0.0.1:49156        127.0.0.1:49155        ESTABLISHED
  TCP    127.0.0.1:49184        127.0.0.1:11235        ESTABLISHED
  TCP    192.168.10.131:445     192.168.10.119:52624   ESTABLISHED
  TCP    192.168.10.131:1433    192.168.10.2:60866     ESTABLISHED
  TCP    192.168.10.131:1433    192.168.10.119:52775   ESTABLISHED
  TCP    192.168.10.131:3389    192.168.10.119:54473   ESTABLISHED
  TCP    192.168.10.131:49154   192.168.10.119:52796   ESTABLISHED
  TCP    192.168.10.131:49182   192.168.10.9:52230     ESTABLISHED
  TCP    192.168.10.131:49247   192.168.10.6:445       ESTABLISHED
  TCP    192.168.10.131:49432   192.168.10.4:1106      ESTABLISHED
  TCP    192.168.10.131:49440   192.168.10.4:1106      ESTABLISHED
  TCP    192.168.10.131:49451   192.168.10.6:1025      ESTABLISHED
  TCP    192.168.10.131:55100   192.168.10.2:445       ESTABLISHED
  TCP    192.168.10.131:64558   192.168.10.20:135      TIME_WAIT
  TCP    192.168.10.131:64559   192.168.10.20:49158    TIME_WAIT
  TCP    192.168.10.131:64566   192.168.10.100:135     TIME_WAIT
  TCP    192.168.10.131:64575   192.168.10.100:59811   TIME_WAIT
  TCP    192.168.10.131:64581   192.168.10.41:139      TIME_WAIT
  TCP    192.168.10.131:64582   192.168.10.3:5357      TIME_WAIT
  TCP    192.168.10.131:64585   192.168.10.61:3910     TIME_WAIT
  TCP    192.168.10.131:64587   192.168.10.65:3910     TIME_WAIT
  TCP    192.168.10.131:64588   192.168.10.9:139       TIME_WAIT
  TCP    192.168.10.131:64589   192.168.10.135:2869    ESTABLISHED
  TCP    192.168.10.131:64593   192.168.10.6:135       TIME_WAIT
  TCP    192.168.10.131:64594   192.168.10.6:1025      TIME_WAIT
  TCP    192.168.10.131:64599   192.168.10.100:59811   TIME_WAIT

0

1
Chào mừng bạn đến hỏi khác nhau! Mặc dù liên kết này có thể trả lời câu hỏi, tốt hơn là bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi.
grg

0

Bạn có thể cài đặt Wireshark và bắt đầu quét trên card mạng của bạn.

Lọc kết quả theo "nbns" và bạn sẽ thấy địa chỉ IP ở cửa sổ phía trên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.