计算机中“Ping”命令的基本工作原理是什么?

计算机中“Ping”命令的基本工作原理是什么?,第1张

Ping发送一个ICMP即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMPecho(ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。

作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。

ping用于

确定本地主机是否能与另一台主机成功交换(发送与接收)数据包,再根据返回的信息,就可以推断TCP/IP参数是否设置正确,以及运行是否正常、网络是否通畅等。Ping命令可以进行以下 *** 作:

①通过将ICMP(Internet控制消息协议)回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接。

②每个发送的数据包最多等待一秒。

③打印已传输和接收的数据包数。

以上内容参考:百度百科-ping

利用VB的Shell执行PING命令,将PING的输出重定向到文件 c:\r.txt,然后读取c:\r.txt文件显示运行结果

由于VB中的Shell命令是异步执行的,即调用Shell后,没等Shell执行完毕,程序就继续执行下一条语句。为此,程序使用了系统API来判断Shell是否结束。

1)窗体及控件

2)代码

Option Explicit

Private Declare Function GetExitCodeProcess Lib "kernel32" ( _

        ByVal hProcess As Long, _

        lpExitCode As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" ( _

        ByVal hObject As Long) As Long

Private Declare Function OpenProcess Lib "kernel32" ( _

        ByVal dwDesiredAccess As Long, _

        ByVal bInheritHandle As Long, _

        ByVal dwProcessId As Long) As Long

        

Const PROCESS_QUERY_INFORMATION = &H400

Const STILL_ALIVE = &H103

Private Sub Command1_Click()

    If Trim(Text1.Text) = "" Then

        MsgBox "请输入域名或IP地址", vbInformation + vbOKOnly

        Text1.SetFocus

        Exit Sub

    End If

    

    '命令执行期间禁用命令按钮

    Command1.Enabled = False

    

    '调用Shell执行Ping,执行结果重定向到C:\r.txt中

    Dim pid As Long

    pid = Shell("cmd.exe /C Ping " & Text1.Text & " > c:\r.txt", vbHide)

    ' 提示

    Text2.Text = "正在执行Ping " & Text1.Text & " ..."

    '等待Shell执行结束

    Dim hProc As Long

    hProc = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid)

    Dim ExitCode As Long

    Do

        Call GetExitCodeProcess(hProc, ExitCode)

        DoEvents

    Loop While ExitCode = STILL_ALIVE

    '清空,准备显示结果

    Text2.Text = ""

    '打开 C:\r.txt文件

    Open "c:\r.txt" For Input As #1

    Dim strLine As String

    Do Until EOF(1)

        Line Input #1, strLine

        '显示执行结果

        Text2.Text = Text2.Text & strLine & vbNewLine

    Loop

    

    '关闭文件

    Close #1

    '删除C:\r.txt

    On Error Resume Next

    Kill "c:\r.txt"

    On Error GoTo 0

    

    '使能命令按钮

    Command1.Enabled = True

End Sub

Private Sub Form_Load()

    Text1.Text = ""

    Text2.Text = ""

End Sub

3)运行结果

Ping baidu.com 正在执行中 ....

Ping baidu.com执行结果


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7833732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存