如何在VB.Net中的测试期间禁用ping?

时间:2012-06-09 05:24:08

标签: vb.net visual-studio ping

我有一个使用My.Computer.Network.Ping的类来获取有关IP地址或主机名是否可访问的布尔值。

但是,当我测试该类时,我想禁用ping,以便在测试期间每当我运行My.Computer.Network.Ping时,它将始终返回false或抛出某种异常。

我尝试过以下操作,但仍然返回true(意思是,禁用ping的尝试不起作用)

Dim restricited As New System.Net.NetworkInformation.NetworkInformationPermission(System.Security.Permissions.PermissionState.None)
    Dim mySocketPermission1 As New SocketPermission(PermissionState.None)
    Dim myWebPermission As New WebPermission(PermissionState.None)
    myWebPermission.Demand()
    mySocketPermission1.Demand()
    Dim ping As New PingOptions()
    ping.DontFragment = True
    ping.Ttl = 1

*attempt to ping here*
*but doesn't return the "ping failed" I wanted*

有什么想法吗? 编辑:'使用VS2010与.Net 4.0 Framework(完整)

1 个答案:

答案 0 :(得分:0)

  

您也可以尝试修改hosts文件(假设您使用的是主机名而不是IP地址),但这似乎是一种相当难看的方法...... - Paul B. Jun 9 at 15:02

Paul B的回答为我做了。我正在测试Win7和XP,但在使用主机文件方法时XP似乎很挑剔。在Win7上正常工作。

保罗就是男人。