我如何知道网络中其他计算机的IP地址?


51

假设我有两台计算机连接到同一网络。我知道通过computer1和启用的文件共享,我可以在computer2内部窥探一下。但是要说在computer2上有一些有趣的东西,您可以通过在safari中键入localhost:9091进行访问。(例如,传输的Web UI)。要访问该目录,我必须在computer1上输入ip_address_of_computer2:9091。

但是,如何不使用computer2来查找computer2的IP地址?


你知道computer2的名字吗?
user151019 2013年

Answers:


82

方法1

最简单的方法是访问网络路由器的管理页面。它将包含有关网络上任何其他设备的信息,包括IP地址。

方法#2

如果知道计算机的网络名称,则可以ping在终端中使用它。它将返回计算机的IP地址。

方法#3

如果您不知道计算机的网络名称,则可以使用另一个技巧ping。找到您的IP地址和子网掩码。两者都应该在“系统偏好设置”的“网络偏好设置”窗格中可见。排列IP地址和子网掩码,然后用IP地址的相同相对位置替换子网掩码中的所有0255。例如,如果您分别具有以下IP地址和子网掩码:

192.168.1.151

255.255.255.0

0是子网掩码的最后一个字段,所以更换了与IP地址的最后一个字段255和ping到它:ping 192.168.1.255

您应该获得一个响应,其中包含网络上能够响应ping的任何设备的IP地址。

方法#4

最后一个技巧是使用terminal命令arp -a。这将显示它知道的网络上所有设备的IP和MAC地址。

最后两个技巧来自这篇 Macworld文章。


8
arp -a仅当Mac已成功探测或已连接到主机时,方法4才有效。通过重新启动Mac并显示arp表来尝试一下。几乎是空的。要填充该表,您需要运行诸如ping扫描之类的操作:nmap -sP 192.168.1.0/24
ripat

出于某种原因,对192.168.1.255执行ping操作会返回网络中所有Mac的地址,但不会返回Linux机器的地址。很棒的提示!
ssc

1
ping SOME-PC -4争取解决IPV4。
Nakilon 2014年

如果您对Windows计算机执行ping操作,是否可以正常工作?
Cullub

1
@cullub是的,它可以在Windows中使用。ping adminPCping adminPC计算机并显示IP地址。正如Nakilon所评论的那样,ping adminPC -4显示IPv4。
幸运

19

输入命令

  arp -a

这将一一显示所有连接。


这似乎不适用于某些设备。我不确定这是因为设备没有在“监听”,还是由于操作系统不同而引起的,但是我现在正在尝试并且arp -a没有拿起我的Linux机器之一。
Jacksonkr

第一次与计算机上的另一台设备通信时,计算机需要解析IP-> MAC,因此它广播“谁拥有IP xxx.yyy.zzz.aaa?”,并且该IP的所有者会做出响应(广播)加上“ me!”,当然该数据包中就有一个源MAC。如果您的设备在网络上时未进行该交易,则不会有ARP条目。因此:并非所有设备都显示在ARP表中,但可能会显示在其他设备的ARP表中。
Harv

4

问:我怎么知道该IP地址的其他计算机在我的网络

很多网络

好吧,首先您的计算机可能位于许多网络上。您可以使用ifconfig命令查看此内容。里面有很多信息,但是大多数信息都是压倒性的,所以我喜欢这样过滤:

$ 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

左对齐线的第一个字段是网络接口名称。你的wifi大概是en0。我的AWS的TunnelBlick VPN是utun1。我bridge100为RaspberryPi 创建的“系统偏好设置”>“共享”>“ Internet共享”我可以通过以太网加密狗从MacBook Pro中获得互联网。

假设IPv4

因为您要求输入IP地址,所以我假设您关心的是IPv4地址。我使用“ inet”(带有空格)来阻止IPv6的“ inet6”条目。如果您想要IPv6,那么您可能比我更了解网络,我应该问您一些问题。

查找主机

让我们专注bridge100于此,为您带来一点Google流量。当许多人想通过网络或通过Internet共享将SSH或RDC接入无头计算机(如RaspberryPi)时,就会遇到这种情况。当您没有与设备的连接历史记录(arp表)时,这尤其困难。为此,可以使用,这是bridge100 inet(192.168.3.1)的值,最后一位替换为“ 0/24”。但是,nmap在OSX上不是标准的,因此我们可以使用homebrew安装它。sudo nmap -sn 192.168.3.0/24

$ 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

由此,您可以假设我的RaspberyPi 192.168.3.6由于某种原因获得了IP 。上一次我连接它时,我在另一个子网中,并且连接了它192.168.2.3。nmap技巧比键入好得多ping 192.168.3.2ping 192.168.3.6直到找到它为止。

希望对您有所帮助。


3

假设您具有主机名并且使用的是mDNS(在Mac环境中为Bonjour),则还有其他一些尚未发现的用于发现IP地址信息的工具。除非您进行其他配置,否则您的本地网络名称将采用以下格式:host-name.local因此,在最初的示例中,您将寻找computer2.local

首先:

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

例如:

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

另一个有用的工具是digdig google.com例如尝试),该工具带有一些特殊参数,可用于查询本地网络的mDNS节点。

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

要仅获取IP地址,dig您可以尝试:

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

它需要知道IP地址或计算机多播DNS名称(.local)。
Florian Bidabe

BonjourBrowser是一个不错的GUI应用程序。
Florian Bidabe

@FlorianBidabe-为什么说要使用这些命令您需要知道IP地址?这些命令返回指定机器的IP地址。是的,需要知道目标计算机的名称才能使用此方法。
KenB

3

该脚本应该可以快速为您提供所需的信息,并且需要安装nmap。这样做的好处是,如果您的主机不回复ping探测,nmap仍会找到该主机,而其他工具则不会。

#!/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"

将该脚本存储为,lookup.sh并使用

LANG=c bash lookup.sh

您如何保存和运行它?
Daniel Pendergast 2014年

您将其粘贴到TextEditor中,然后将其保存并命名为“ qnmap”。然后,将该文件移动到/ usr / bin(按住Command + Shift + G或Finder / Go /转到文件夹:/ usr / bin)。打开终端,输入“ sudo chmod a + x / usr / bin / qnmap”。在终端中键入“ qnmap”,然后等待结果。
Florian Bidabe 2014年

好。我得到了这个错误:/usr/bin/qnmap: line 2: =en1: command not found看起来像美元符号之前不i应该在那里。
Daniel Pendergast 2014年

1
抱歉Dan,我不好,这行应该是:i =“ en1”
Florian Bidabe 2014年

凉。效果很好。
Daniel Pendergast 2014年

2

您还可以使用netstat显示网络地址:

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

您可以安装Wireshark并在网卡上开始扫描。

用“ nbns”过滤结果,您将在上方窗口中看到IP地址。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.