简介
本脚本是上一篇博文的功能拓展,主要功能
- 解析域名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 ]')
})