首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查网络可用性VB.net

检查网络可用性VB.net
EN

Stack Overflow用户
提问于 2009-12-22 23:53:57
回答 3查看 20.3K关注 0票数 3

我正在编写一个应用程序,该应用程序将在网络连接将定期打开/关闭的移动环境中使用。如何检查特定网络是否可用?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-22 23:56:51

试试NetworkInterface.GetIsNetworkAvailable

表示是否有可用的网络连接。

如果任何网络接口被标记为"up“并且不是环回或隧道接口,则认为网络连接可用。

票数 5
EN

Stack Overflow用户

发布于 2009-12-23 00:55:20

要查看是否有可用的网络,可以使用VB.NET My名称空间:

代码语言:javascript
复制
My.Computer.Network.IsAvailable

我猜这是Andrew答案中NetworkInterface属性的抽象。要查看是否可以使用可用的网络访问特定的服务器,可以使用

代码语言:javascript
复制
My.Computer.Network.Ping(host name or IP address, or a System.Uri)
票数 3
EN

Stack Overflow用户

发布于 2014-03-20 06:43:23

我喜欢挖掘旧的线索!我的解决方案是使用DNS进行测试。这样,您可以在xxx网络内测试特定的名称,以判断您是在内部还是外部。嵌套的try语句说明了这一概念。

代码语言:javascript
复制
Imports System.Net

Module Networker

Dim Online_Status As Boolean = vbFalse
Dim InsideJoeNetwork As Boolean = vbFalse
Dim CurrentJoeIPAddress As New IPHostEntry



Public ReadOnly Property GetOnlineStatus() As String
    Get
        Return Online_Status
    End Get

End Property



Public ReadOnly Property InsideJoeNet() As String
    Get
        Return InsideJoeNetwork
    End Get

End Property



Sub Initialize()
    Set_Online_Status()

End Sub



Public Sub Set_Online_Status()

    If My.Computer.Network.IsAvailable Then
        Try
            Dim DNSTest As IPHostEntry = Dns.GetHostEntry("google.com")
            If DNSTest.AddressList.Length > 0 Then
                Online_Status = True
                Detect_Joe_Network()
            Else : Online_Status = False

            End If

        Catch ex As System.Net.Sockets.SocketException

            Online_Status = False

        End Try
    End If

End Sub



Public Sub Detect_Joe_Network()

    If Online_Status = True Then

        Dim JoeIP As IPHostEntry = New IPHostEntry()

        Try
            JoeIP = Dns.GetHostEntry("laptop")
            If JoeIP.AddressList.Length > 0 Then

                InsideJoeNetwork = True
                CurrentJoeIPAddress = JoeIP
                'MessageBox.Show(JoeIP.HostName.ToString(), "JoeIP", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        Catch ex As Sockets.SocketException

            Try
                JoeIP = Dns.GetHostEntry("laptop.exampledomain.com")
                If JoeIP.AddressList.Length > 0 Then

                    InsideJoeNetwork = False
                    CurrentJoeIPAddress = JoeIP
                    ' MessageBox.Show(JoeIP.HostName.ToString(), "JoeIP", MessageBoxButtons.OK, MessageBoxIcon.Information)
                End If
            Catch ey As Sockets.SocketException

            End Try
        End Try
    End If

End Sub

End Module
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1947250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档