Vb.net 尝试使用ping向日志添加时间戳,但当我使用streamwriter添加时间戳时,它会使控制台ping无效
我正在尝试制作一个程序,将ping一个IP x的次数,然后将结果写入日志并通过电子邮件发送给该日志。在我决定给它添加时间戳之前,它工作得很好。当我试着用额外的时间戳代码运行它时,它成功了,这样控制台就不会ping IP,但编写器会将时间戳写入文件,我不知道为什么。这是那艘潜艇的代码Vb.net 尝试使用ping向日志添加时间戳,但当我使用streamwriter添加时间戳时,它会使控制台ping无效,vb.net,timestamp,ping,Vb.net,Timestamp,Ping,我正在尝试制作一个程序,将ping一个IP x的次数,然后将结果写入日志并通过电子邮件发送给该日志。在我决定给它添加时间戳之前,它工作得很好。当我试着用额外的时间戳代码运行它时,它成功了,这样控制台就不会ping IP,但编写器会将时间戳写入文件,我不知道为什么。这是那艘潜艇的代码 Sub ping(ByVal interval As Integer, ByVal ip As String, ByVal desktop As String, ByRef counter As Integer, B
Sub ping(ByVal interval As Integer, ByVal ip As String, ByVal desktop As String, ByRef counter As Integer, ByRef boolping As Boolean)
Dim now As New DateTime
Dim writer As System.IO.StreamWriter = System.IO.File.AppendText(desktop & "\log.txt")
While counter > 0 And boolping = True
now = DateTime.Now
writer.WriteLine(now)
boolping = My.Computer.Network.Ping(ip)
Process.Start("CMD", "/c ping " & ip & " >> " & desktop & "\log.txt")
System.Threading.Thread.Sleep(interval)
counter = counter - 1
End While
writer.Close()
End Sub
不确定为什么要使用进程。是否开始?在.NET框架中,您已经具备了实现这一点所需的一切 以下是如何做到这一点:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim address As String = "www.yahoo.com"
Dim log As String = "log.txt"
Dim count As Integer = 5
For i As Integer = 0 To count
Dim ping As Ping = New Ping()
Dim pingReply As PingReply = ping.Send(address)
Dim contents As String =
String.Format("{0}{1}{2}{3}{4}{5}",
DateTime.Now, vbTab, address,
vbTab, pingReply.Status, vbCrLf)
File.AppendAllText(log, contents)
Thread.Sleep(TimeSpan.FromSeconds(1))
Next
End Sub
结果:
10/2/2014 9:24:20 PM www.yahoo.com Success
10/2/2014 9:24:21 PM www.yahoo.com Success
10/2/2014 9:24:22 PM www.yahoo.com Success
10/2/2014 9:24:23 PM www.yahoo.com Success
10/2/2014 9:24:24 PM www.yahoo.com Success
10/2/2014 9:24:25 PM www.yahoo.com Success
因此,它显示了它是否成功,但是否有方法记录所有ping统计信息?是的,有一个示例显示了如何检索有关ping的更多详细信息:。如我所示,您可以将它们附加到字符串中,例如,使用vbTab解析日志或在Excel中打开日志时,您将更轻松。