イーサネット経由でPCに接続され、動的IPを持つRaspberryPiのIPを確認したいと思います。
オプション1:
DHCPサーバーを調べます。すべてのDHCPリースが表示されている場合は、そこに表示されます。
オプション2:
または、Raspberry PiのMACアドレスがわかっている場合は、arpテーブルで検索してみてください。そのためのcmdプロンプトを開き、arp -a
と入力します。次に、既知のすべてのIP-MACペアのリストが表示されます。そこにない場合は、ブロードキャストアドレスにpingを実行して、もう一度arp -a
を入力してみてください。ブロードキャストIPは、常にサブネット内の最後のIPです。たとえば、サブネット192.168.0.0
のブロードキャストIPは192.168.0.255
です。
オプション3:
Raspberry Piでのみ開いている特定のポートがわかっている場合は、ネットワーク内のすべてのデバイスをスキャンして、開いているポートを探すこともできます。たとえば、Raspberry Piがポート80で開いている場合、サブネット内のすべてのIPアドレスをスキャンしてポート80を探すことができます。ネットワークにWebサーバーが多すぎない場合(IPを知っているプリンターとルーターが数台しかない場合)もちろんアドレス)、あなたはあなたのラズベリーパイを非常に速く見つけるでしょう。
残念ながら、Powershellスクリプトを使用してポートをスキャンしているため、nmapの使用方法がわかりません。試してみたい場合は、ここに貼り付けることができます。私のスクリプトを試してみたい場合は、コメントでお知らせください。
編集:これが私のスクリプトです。以下の使用法。
function Test-Port {
param(
[parameter(Position=0)][string[]]$Computer=(Read-Host "Target: "),
[parameter(Position=1)][string[]]$Port=(Read-Host "Ziel-Port: "),
[int]$Timeout=1000
)
$ErrorActionPreference = "SilentlyContinue"
$ResultObjects = @()
foreach ($Target in $Computer) {
foreach ($p in $Port) {
$ResultObjects += P_Test-Port
} # end port foreach
} #end target foreach
return $ResultObjects
} #end function
function P_Test-Port {
$tcpclient = new-object system.net.sockets.tcpclient
$con = $tcpclient.BeginConnect($Target,$p,$null,$null)
$wait = $con.AsyncWaitHandle.WaitOne($timeout,$false)
[bool]$Open = $false
# check the connection
if(!$wait)
{
# close connection and report timeout
$tcpclient.Close()
[string]$result = ("Connection Timeout (" + $Timeout + " ms)")
$failed = $true
} else {
$error.Clear()
$tcpclient.EndConnect($con) | out-null
if(!$?){[string]$result = ("Closed / Filtered");$failed = $true}
$tcpclient.Close()
}
if(!$failed){
[string]$result = ("Open")
$failed = $false
$Open = $true
}
$objTestPortResult = new-object System.Object
$objTestPortResult | Add-Member -type NoteProperty -name Host -value $Target
$objTestPortResult | Add-Member -type NoteProperty -name Port -value $p
$objTestPortResult | Add-Member -type NoteProperty -name Result -value $result
$objTestPortResult | Add-Member -type NoteProperty -name Open -value $Open
return $objTestPortResult
}
このスクリプトをコピーして、PowerShellに貼り付けます。その後、次のように使用できます。Test-Port <IP-Address[]> <Port[]>
例:Test-Port 192.168.0.1,AnyComputerName 80,443
これにより、コンピューター192.168.0.1
およびAnyComputerName
が開いているポート80
および443
がないかスキャンされます。 ComputernameとPortに1つの引数を渡すか、複数のコンマ区切り値を渡すことができます。
サブネット全体でポート80をスキャンするには、次のようにします(サブネット192.168.0.0/24を使用していると仮定します)。$ips = 1..254 | Foreach-Object { "192.168.0.$_" } ; Test-Port $ips 80
さらに情報が必要な場合、またはスキャンしたいポートを教えてください。コマンドを作成します。
RasPiホスト名がわかっている場合は、pingを実行するだけです。 pingに応答すると、IPアドレスが通知されます。
スクリプトは必要ありません。