2013-07-30 46 views
1

我的代碼使用代理工程,但當代理無效或限制我的程序直接使用我的IP地址,我用一個Web瀏覽器,直接檢查我的IP,有沒有什麼辦法可以設置一個例外每當我使用的代理無效或受限?VB.net代理異常

這裏是我的工作代碼:

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 
+0

在try-catch塊中包裝失敗的行的代碼? – DOK

回答

0

嘗試以下解決方案:

Another Stackoverflow Answer

我相信,如果你的地址綁定到特定的IP它不會工作,如果IP無效或不工作,並且不會使用您的系統默認值。