2017-05-11 1 views
-1

の知識がなくても、ローカル・エリア・ネットワークをスキャンするために、私はローカルサブネット上のすべてのアドレスにpingを実行するためにネットワークスキャンツールとしてPowerShellを使用しようとしています。成功したpingは、宛先デバイスのIPアドレスと共に表示されます。PowerShellの:どのようにサブネットサイズ

$myIPAddress = $(Get-NetIPAddress | ? { ($_.AddressFamily -ilike "*IPv4*") -and ($_.IPAddress -notlike "127.0.0.1") -and ($_.IPAddress -notlike "169*") } | Select -ExpandProperty IPAddress) 

$myPrefixLength = $(Get-NetIPAddress | ? { ($_.AddressFamily -ilike "*IPv4*") -and ($_.IPAddress -notlike "127.0.0.1") -and ($_.IPAddress -notlike "169*") } | Select -ExpandProperty PrefixLength) 

は、私も基本的に/ 24のスペース内のすべてのアドレスに対してpingを実行するためのツールを作ることによって、それを開始しました:

は私がGet-NetIPAddressからIPおよびプレフィックス長を抽出します2つのコマンドを作成しました

$ping = new-object system.net.networkinformation.ping; 1..254 | % {$ping.send("192.168.43.$_", 1) | select address,status} 

これは、サブネットスペースが/24であり、IPアドレスが192.168.43で始まることも認識されています。

私が達成しようとしているのは、1..254"192.168.43.$_"などの変数は、マシンのIPアドレスに応じて変更することができます。

は、これは私が初心者としてやるべきもの以外の方法だろうか?もしそうなら、自分の知識レベルのためにもっと簡単に作ることができる他のネットワーキングツールは何ですか?

+0

8ビットネットワークマスクを持つローカルネットワークをお持ちの場合はどうなりますか?スキャンするアドレスは16,777,216です。それはあなたに非常に長い時間がかかります。あなたは任意のサイズのローカルネットワークを持つことができます。でも、ほとんどのネットワークは、18,446,744,073,709,551,616可能なアドレスを持つことになりますIPv6の、について考えてはいけない、とスキャン1,000,000 /秒は584542年以上もかかります。 –

答えて

0

ロンMaupinのが述べたように、これは問題が発生する可能性がありますが、私はあなたが小さなテストサブネット上にそれを使用することを計画していると仮定しています。あなたがpowershel V5を使用している場合は、サブネット範囲で

https://www.powershellgallery.com/packages/Indented.Net.IP/5.0.12/Content/Indented.Net.IP.psm1 をするIPアドレスを取得するために、このモジュールを利用することができ

あなたは以下のコードは、あなたが何であったかを行うのと同じInstall-Module Indented.Net.IP -Scope CurrentUser

ために、このコマンドを使用することができます上記のモジュールの助けを借りて:

Import-Module Indented.Net.IP 
    $IPAddresses = $(Get-NetIPAddress | ? { ($_.AddressFamily -ilike "*IPv4*") -and ($_.IPAddress -notlike "127.0.0.1") -and ($_.IPAddress -notlike "169*") }) 

    $ips = $ipaddresses | %{Get-NetworkRange "$($_.ipaddress)/$($_.prefixlength)"} 

    $ping = new-object system.net.networkinformation.ping; $ips.ipaddresstostring | % {$ping.send($_, 1) | select address,status} 
+0

'PS C:\ Users \ユーザーユーザー>インポートモジュールIndented.Net.IP インポートモジュール:指定されたモジュールのIndented.Net.IP 'は有効なモジュールファイルを任意の モジュールディレクトリに見つからなかったためにロードされていませんでした。ラインで :1文字:1 +インポートモジュールIndented.Net.IP + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [Import-Module]インデントされたときに発行されたのは、次のコードです。 .Net.IP '私のPowerShellのバージョンでは、このコマンドを実行する必要がMartinMartynasMarkevič[email protected] 5.1 –

+0

'インストール・モジュールIndented.Net.IP -Scope CurrentUser'をあなたは私が最初に掲載誰かが私の答えを編集し、私はそれを(インポートすることができます前にありますその答えを元に戻した –

関連する問題