見出し画像

DNS名とping応答あるかを調べるPowerShellスクリプト

「特定のセグメント内でIPアドレスが使われているか、ping応答があるかとりあえずでいいので確認したい」と言われてやっつけで作ったスクリプト。
lookupとping投げて応答結果をまとめる。ただそれだけ。

#DNSname lookup & Ping Check

#Segmentに第3オクテットまで入力させる。例)192.168.1
param(
   [parameter(Mandatory=$true)][String]$Segment
)

$ErrorActionPreference = "Stop"
$ScriptFullPath = $MyInvocation.Mycommand.path
$ScriptPath = (Split-Path $ScriptFullPath -Parent)

$LogFileDateTime = (Get-Date -Format "yyyyMMdd-HHmmss")


$i = 1
$LOGFILE = "${ScriptPath}\networkcheck_${LogFileDateTime}.csv"

"IPアドレス,DNS登録,ping応答" | Out-File $LOGFILE
while( $i -lt 256)
{
   try{
       Write-Host $i
       $dnsname = ([System.Net.DNS]::GetHostEntry("${Segment}.${i}")).HostName 
       $lookupresult = "${Segment}.$i,$dnsname"
       }catch [Exception]
       {
         $lookupresult = "${Segment}.$i,DNS登録なし"
       }
   try{
       Test-Connection "${Segment}.${i}" -count 1
       $pinresult = "ping応答あり"
       }catch [Exception]
       {
         $pinresult = "ping応答なし"
       }

       "$lookupresult,$pinresult" | Out-File $LOGFILE -Append
    $i = $i + 1

}

使うこと、あまり無い気はするけど。
ファイルもアップしておくよ。

以上。

いいなと思ったら応援しよう!