ハードウェアは次のようなものです。
そこで、Piとラップトップの間に一時的なクロスオーバーケーブルを用意し、ラップトップのイーサネットポートを「他のコンピューターと共有」(*)として設定し、SDカードのイメージを作成して、Piを起動します。さて、Piにはどのアドレスがあるので、SSHで接続できますか
特定のアドレスを強制する必要はありません この質問が望むように 。私はそれが何であるかを知りたいだけです。
(*)ネットワーク通知->接続の編集...->有線接続1->編集ボタン->IPv4設定タブ->方法=他のコンピューターと共有
できることがいくつかあります。ラップトップからraspberryへの単一のイーサネット接続がある場合、arp-scan
で十分です。まず、イーサネットインターフェースの名前を確認します。私の場合、それはeth3
です。したがって、以下に例を示します。
bash-4.3$ Sudo arp-scan -I eth3 --localnet
[Sudo] password for xieerqi:
Interface: eth3, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.42.0.40 b8:27:eb:96:38:91 (Unknown)
1 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8.1: 256 hosts scanned in 1.459 seconds (175.46 hosts/sec). 1 responded
出力では、RaspberryのIPアドレスが10.42.0.40であることがわかります。
arp-scan
は非常に単純なアプローチであり、あまり汗をかく必要はありません。別の方法も使用できます。それらのいくつかを次に示します。
ip addr show eth3
コマンドを使用して)、ホストの範囲をpingする簡単なスクリプトを作成できます。 (それを行うpythonスクリプトについては以下を参照してください)。fping
は、標準のping
コマンドの代替であり、ホスト範囲のプローブを許可しますnmap
を使用して、さまざまな方法でホスト検出を実行できます。特に、次のコマンド:nmap -e eth3 -sn 10.42.0.0/24
が最適です--sn
オプション(フードの下でARP要求をブロードキャストMACアドレスに送信する)のみでホスト検出を実行するようにnmap
に指示します-e
オプションで指定されたインターフェイス。 10.42.0.0/24
は、ネットワークのCIDR表記です。とても簡単です。Wireshark
は、イーサネットインターフェイスでパケットをキャプチャするためにも使用できます。もちろん、ラズベリーはキャプチャするために最初にいくつかのパケットを送信する必要があるため、「おしゃべりな」ラズベリーを持っていない場合は動作しない可能性があります。ただし、キャプチャを開始し、UDPプロトコルでフィルタリングし、Raspberryでプラグを抜き差しすることができます。 DHCPリクエストと応答が表示されるはずです
デバイスは、ホストがネットワークに現れたり消えたりするときに、時間の経過とともにarpテーブルを構築するため、arp -a
コマンドを使用することもできます。
標準のUbuntuを使用していて、代替DHCPサーバーをインストールしなかった場合、デバイスにIPが割り当てられたdnsmasq
リースファイルを確認できます。例えば:
bash-4.3$ cat /var/lib/misc/dnsmasq.leases
1479095355 b8:27:eb:96:38:91 10.42.0.40 localhost *
ここに関連する質問を参照してください: Raspberry PiのDHCPリースが見つかりません
複数のデバイスが接続されたイーサネットスイッチがある場合、nmap
およびWireshark
アプローチは非常に便利です。
ping
を使用したスクリプティングに言及したので、ここに1つあります。
from subprocess import *
network = '10.42.0.'
for num in range(255):
i = str(num)
dn = open('/dev/null','w')
try:
print('checking ' + network + i)
check_call(['ping', '-c','1', '-W',
'1','-q',network + i],stdout=dn)
except CalledProcessError:
pass
#print('10.42.0.' + i + ' is down')
else:
print('>>> ' + network + i + ' is up')
これにより、ネットワークの256アドレスの範囲(10.42.0.x
)がpingされ、どのホストが稼働しているかが示されます。 pingは1秒後にタイムアウトするため、すべてをスキャンするには256秒かかります。ラズベリーが1つしかない場合は、IPがpingに応答した場合に終了するようにスクリプトを編集して、プロセスを高速化できます。特定の数のスレッドを作成することもできます。 arp-scan
ただし、より高速な代替手段のままです。
このリンクは役に立つかもしれません: https://www.raspberrypi.org/documentation/remote-access/ip-address.md
コア部分は次のとおりです。
Nmapをインストールします。
apt-get install nmap
Pingスキャンを実行します。
nmap -sn <your-subnet>
例えば:
nmap -sn 192.168.1.0/24
次に、次のような出力が表示されます。
Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-10 12:46 GMT
Nmap scan report for hpprinter (192.168.1.2)
Host is up (0.00044s latency).
Nmap scan report for Gordons-MBP (192.168.1.4)
Host is up (0.0010s latency).
Nmap scan report for ubuntu (192.168.1.5)
Host is up (0.0010s latency).
Nmap scan report for raspberrypi (192.168.1.8)
Host is up (0.0030s latency).
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.41 seconds
Wi-Fiが利用可能な場合、モバイルアプリも使用することがあります: https://play.google.com/store/apps/details?id=ua.com.streamsoft.pingtools