VB.net代理异常

时间:2013-07-30 18:03:17

标签: vb.net proxy webbrowser-control

我的代码使用代理工作,但当代理无效或限制我的程序直接使用我的IP地址,我使用直接检查我的IP的网络浏览器,有什么方法,我可以设置一个异常,无论我使用的代理无效或受限制?

这是我的工作代码:

Imports System.Runtime.InteropServices 
   #Region "Using Proxy"
        <Runtime.InteropServices.DllImport("wininet.dll", SetLastError:=True)> _
        Private Shared Function InternetSetOption(ByVal hInternet As IntPtr, ByVal dwOption As Integer, ByVal lpBuffer As IntPtr, ByVal lpdwBufferLength As Integer) As Boolean
        End Function

        Public Structure Struct_INTERNET_PROXY_INFO
            Public dwAccessType As Integer
            Public proxy As IntPtr
            Public proxyBypass As IntPtr
        End Structure

        Private Sub UseProxy(ByVal strProxy As String)
            Const INTERNET_OPTION_PROXY As Integer = 38
            Const INTERNET_OPEN_TYPE_PROXY As Integer = 3

            Dim struct_IPI As Struct_INTERNET_PROXY_INFO

            struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY
            struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy)
            struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local")

            Dim intptrStruct As IntPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI))

            Marshal.StructureToPtr(struct_IPI, intptrStruct, True)

            Dim iReturn As Boolean = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, System.Runtime.InteropServices.Marshal.SizeOf(struct_IPI))
        End Sub
    #End Region

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    UseProxy(ProxyText.Text)
    WebBrowser1.Navigate("ipchicken.com")

    End Sub

1 个答案:

答案 0 :(得分:0)

尝试以下解决方案:

Another Stackoverflow Answer

我相信如果你将地址绑定到那个特定的ip它不会工作,如果ip无效或不工作,并且不会使用你的系统默认值。