简介
本脚本是上一篇博文的功能拓展,主要功能
- 解析域名ip
- 分别ping所解析到的ip
- 自定义ping次数
部分代码原理
仅使用 DNS 解析名称。 不会发出 LLMNR 和 NetBIOS 查询。
Resolve-DnsName -Name pdc.chana.com -DnsOnly
匹配ping返回的结果$pingPDCTextBox.Text
为可自定义ping次数
ping $ipArray[$i] -n $pingPDCTextBox.Text | Where-Object {$_ -match "回复" -or $_ -match "Reply" -or $_ -match "请求超时" -or $_ -match "Request timed out" -or $_ -match "无法访问目标主机" -or $_ -match "Destination host unreachable"}
源码
# 创建ping次数输入框 $pingPDCTextBox = New-Object System.Windows.Forms.TextBox $pingPDCTextBox.Location = New-Object System.Drawing.Point(250,500) $pingPDCTextBox.Multiline = $true $pingPDCTextBox.Size = New-Object System.Drawing.Size(30,30) $pingPDCTextBox.BackColor = '#93d5dc' $pingPDCTextBox.Font = New-Object System.Drawing.Font("Comic Sans MS",12) #$SetNameTextBox.BackColor = [System.Drawing.Color]::FromName("Transparent") $Form.Controls.Add($pingPDCTextBox) $pingPDCTextBox.Text = "1" $pingPDC = $pingPDCTextBox.Text # 创建ip检测按钮 $pingPDCButton = New-Object System.Windows.Forms.Button $pingPDCButton.Location = New-Object System.Drawing.Point(20,500) $pingPDCButton.Size = New-Object System.Drawing.Size(220,30) $pingPDCButton.Font = New-Object System.Drawing.Font( "幼圆",11,[System.Drawing.FontStyle]::Regular ) $pingPDCButton.Text = "PDC测试" $Form.Controls.Add($pingPDCButton) $pingPDCButton.Add_Click({ $ip = Resolve-DnsName -Name pdc.chana.com -DnsOnly $ipArray = $ip.IPAddress for (($i = 0); $i -lt $ipArray.Count; $i++) { $ouput = ping $ipArray[$i] -n $pingPDCTextBox.Text | Where-Object {$_ -match "回复" -or $_ -match "Reply" -or $_ -match "请求超时" -or $_ -match "Request timed out" -or $_ -match "无法访问目标主机" -or $_ -match "Destination host unreachable"} $tmp1 = $ipArray[$i] +": " + "`n " + $ouput $tmp = $tmp + "`n" + $tmp1 } $msgBoxInput = [System.Windows.MessageBox]::Show($tmp,"ping结果") }) #设置ping解释按钮[?] $pingPDCinfoButton = New-Object System.Windows.Forms.Button $pingPDCinfoButton.Location = New-Object System.Drawing.Point(290,500) $pingPDCinfoButton.Size = New-Object System.Drawing.Size(30,30) $pingPDCinfoButton.Font = New-Object System.Drawing.Font( "幼圆",11,[System.Drawing.FontStyle]::Regular ) $pingPDCinfoButton.Text = "?" $Form.Controls.Add($pingPDCinfoButton) $pingPDCinfoButton.Add_Click({ $msgBoxInput = [System.Windows.MessageBox]::Show(' 点击 [PDC测试]会自动从DNS解析PDC所有IP地址并ping测试 右侧输入框可自定义测试次数,默认测试1次', 'PDC连接测试 - [ INFO ]') })