当前位置:编程学习 > C#/ASP.NET >>

如何通过代码判断本机是否上网?

请问如何通过代码判断本机是否上网? --------------------编程问答--------------------

 [System.Runtime.InteropServices.DllImport("winInet.dll")]  ‘调用Win32 API函数
 

然后判断InternetGetConnectedState 的值 --------------------编程问答-------------------- 简单的就运行下ping
看看能不能ping通不就ok了?
怎么用ping不用教了吧?不会的百度下 --------------------编程问答--------------------

百度。。。C#实现ping
参考
--------------------编程问答-------------------- .NET已经有封装的,
Computer.Network.Ping("IP地址")就可以了
还有一个可以判断是否连接的函数,具体的忘记了,搜一下吧 --------------------编程问答--------------------
 Private Sub FrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If My.Computer.Network.IsAvailable = True Then
            MsgBox("電腦網絡已經連接.")
        Else
            MsgBox("電腦網絡未連接.")
        End If
  End Sub
--------------------编程问答-------------------- 其实还是用ping更可靠一些,如果判断是否连通互联网就ping微软或某知名网站的域名,内网就ping已知服务器地址即可 --------------------编程问答--------------------  Public Declare Auto Function RasGetEntryDialParams Lib "rasapi32.dll" (ByVal PhoneBook As String, ByRef DialParams As RASDIALPARAMS, ByRef Password As Int32) As Int32
    Public Declare Unicode Function RasDial Lib "rasapi32.dll" Alias "RasDialW" (ByVal RasDialExtensions As Int32, ByVal PhoneBook As String, ByRef DialParams As RASDIALPARAMS, ByVal NotifierType As Int32, ByVal Notifier As Int32, ByRef hRasConnection As Int32) As Int32
    Public Declare Auto Function RasEnumConnections Lib "rasapi32.dll" (ByRef lprasconn As RASCONN, ByRef lpcb As Integer, ByRef lpcConnections As Integer) As Integer
    Public Declare Auto Function RasHangUp Lib "rasapi32.dll" (ByVal hrasconn As IntPtr) As Integer
    Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
   
断网: 
Private Function Disconnect() As Integer
        Dim RasCon As New RASCONN
        Dim lbcp As Integer
        Dim lpconnection As Integer
        RasCon.dwSize = Marshal.SizeOf(GetType(RASCONN))
        lbcp = RasCon.dwSize
        RasEnumConnections(RasCon, lbcp, lpconnection)
        RasHangUp(RasCon.hrasconn)
    End Function
联网:
 Private Function GetRasDialParams(ByVal EntryName As String) As Integer
        Dim hRASHandle As IntPtr
        Dim params As New RASDIALPARAMS
        Dim rtn As Int32,
                bResult As Boolean = False
        params.Size = Marshal.SizeOf(params)
        params.EntryName = EntryName
        params.UserName = "111111"
        params.Password = "123456"
        Dim bFlag As Int32 = 0 'rtn = RasGetEntryDialParams(vbNullString, params, bFlag) 'Me.Text = params.Password 
        ' MsgBox(RasGetEntryDialParams(vbNullString, params, bFlag))
        If rtn = 0 Then
            Return RasDial(Nothing, vbNullString, params, 0, Nothing, hRASHandle) ' returns 632 for some reason...
            '  MsgBox("JK")
        End If
    End Function --------------------编程问答-------------------- 一般情况下5楼的方法就行了吧如果机器还连接了局域网,那就再用4楼的方法ping个DNS服务器看看结果
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,