2015/12/12

Raspberry Pi:查詢IP位址

我的Raspberry Pi位於路由器之後,透過DHCP向路由器取得私有IP位址。

以瀏覽器登入路由器,查詢IP位址分配情況。
Raspbian開機後,可在主控台看到類似如下訊息:
My IP address is 192.168.1.15

Raspbian GNU/Linux 8 raspberrypi tty1

raspberrypi login: _

在rpi上執行指令ifconfig,可得知網路介面的狀態:
$ ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:3c:ce:77
          inet addr:192.168.1.15  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::7814:89c2:cf8d:2018/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:68 errors:0 dropped:0 overruns:0 frame:0
          TX packets:97 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7667 (7.4 KiB)  TX bytes:15216 (14.8 KiB)

在rpi上執行指令hostname加上參數-I,可直接得到IP位址:
$ hostname -I
192.168.1.15


從同一區域網路裡的其他台Linux電腦,使用指令nmap,查詢同網域內電腦的IP位址。參數-sn代表不掃描連接埠,192.168.1.0/24的24代表子網路遮罩部分有24個位元,因此會掃描256個IP位址,從.0到.255。
$ nmap -sn 192.168.1.0/24

Starting Nmap 6.47 ( http://nmap.org ) at 2015-12-10 14:23 CST
Nmap scan report for www.asusnetwork.net (192.168.1.1)
Host is up (0.0011s latency).
Nmap scan report for yehnanwinxp (192.168.1.2)
Host is up (0.00090s latency).
Nmap scan report for raspberrypi (192.168.1.15)
Host is up (0.00034s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 2.57 seconds

若是Windows與Mac OS X,可到nmap.org下載nmap這支工具,也有圖形介面Zenmap。底下在Windows 7上的執行畫面。
從同一區域網路裡的其他台Linux電腦,使用指令fping,一次性ping多台電腦,在rpi開機前後執行此動作,便可得知rpi的IP位址。參數-a代表只秀出活著的電腦,參數-q代表安靜模式,不秀出額外的訊息,以參數-g指定想要ping的IP位址範圍。
$ fping -a -q -g 192.168.1.1 192.168.1.255
192.168.1.1
192.168.1.2
192.168.1.7


Windows版的fping,可到這裡下載。但參數不太一樣,-p代表使用多個執行緒,-g代表IP位址範圍(以斜線/隔開);沒有Linux版的-a參數,但一般來說,因為會比較快收到活著電腦的回應,所以fping指令就會先顯示這些電腦,然後顯示回應很慢或不存在的電腦。

> fping -p -g 192.168.1.1/192.168.1.255
Reply[101] from 192.168.1.101: bytes=32 time=5.4 ms TTL=64
Reply[110] from 192.168.1.110: bytes=32 time=5.2 ms TTL=128
Reply[1] from 192.168.1.1: bytes=32 time=8.2 ms TTL=64
192.168.1.146: request timed out
192.168.1.149: request timed out
192.168.1.179: request timed out
192.168.1.153: request timed out
...

使用Mac OS X的「IP Scanner」,執行畫面如下,也能掃描鄰近電腦的IP位址。
在Windows上使用指令arp,但因為種種原因(快取、有無連線、等等),不一定會完整顯示,其中B8-27-EB是Raspberry Pi的MAC起始位址。:
C:\>arp -a

Interface: 192.168.1.2 --- 0x2
  Internet Address      Physical Address      Type
  192.168.1.1           54-04-a6-5a-e9-78     dynamic
  192.168.1.7           a8-20-66-34-ec-5e     dynamic
  192.168.1.15          b8-27-eb-3c-ce-77     dynamic

在Mac OS X上有專門工具來尋找rpi的IP位址,叫做Pi Finder,尋找以B8:27:EB開頭的MAC位址。
其他:Adafruit的Adafruit-Pi-FinderAngry IP Scanner

2 comments:

  1. 使用 2> /dev/null 可排除unreachable的訊息(stderr),例:
    fping -a -g 192.168.2.1 192.168.2.254 2> /dev/null

    ReplyDelete
  2. Advanced IP Scanner
    http://www.advanced-ip-scanner.com/tw/

    ReplyDelete