2015-10-04 43 views
2

我正在为使用VB.NET的Windows 10 IoT开发通用Windows应用程序。 我正在检查两件事 - 首先是,如果有任何网络的话。我正在使用检查在线状态,例如通过pinging

Imports System.Net 
NetworkInformation.NetworkInterface.GetIsNetworkAvailable 

为此。但是这并不能告诉我,如果我真的有互联网接入,它只会表明我是否连接到网络。

有什么办法可以ping一个地址(如8.8.8.8)?我找不到解决方案。 该设备将只用于私人用途,如果该信息是必要的,该应用程序将不会公开。

+0

您可以尝试使用'Windows.Web.Http.HttpClient'发送HTTP请求或使用'Windows.Ntworking.Sockets.StreamSocket'创建TCP连接。 – kiewic

回答

0

您可以使用:
My.Computer.Network.Ping( “192.168.1.1”)以ping IP

My.Computer.Network.Ping( “www.google.com”)来ping一个url

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If My.Computer.Network.Ping("192.168.1.1") Then 
     MsgBox("Connection ok") 
    Else 
     MsgBox("No Connection") 
    End If 
End Sub 
+0

这只适用于常规Windows窗体(也可能是WPF)应用程序,但不适用于通用应用程序,因为它们中不存在“我的” - 名称空间。 – user2694534

0

这个建议文本告诉你如何定义连接到互联网。 例如,如果google.com可以访问,它将返回true。所以你不需要任何ping。

''' <summary> 
''' check for a existing internet connection to www.google.com 
''' </summary> 
''' <returns>True if it's exist</returns> 
Public Shared Function isConnected() As Boolean 
    Try 
     Dim addresslist As IPAddress() = Dns.GetHostAddresses("www.google.com") 
     ' | ' addresslist holds a list of ipadresses to google 
     ' | ' e.g 173.194.40.112          | 
     ' | '    .116          | 
     If addresslist(0).ToString().Length > 6 Then 
      Return True 
     Else 
      Return False 
     End If 
    Catch ex As Sockets.SocketException 
     ' | ' You are offline     | 
     ' | ' the host is unkonwn    | 
     Return False 
    Catch ex As Exception 
     Return False 
    End Try 
End Function