not a very secure way of using proxies..
see, if this is for a work/school network, the I.T guys are doing more than just looking for a url,
there also looking for the proxy sites,
seeing who goes on them over a month, then bans the lot.
using a socket connection is a lot better, becouse (from personal experience),
its a lot more anoying going through connection logs to find something like a proxy connection.....
and if there getting the header-client connections, this method will be picked up after a week...if that.
instead, make a module, and put this in it.
Code:
Imports System.Runtime.InteropServices
Module mdlproxy
<Runtime.InteropServices.DllImport("wininet.dll", SetLastError:=True)> _
Private 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
Public Sub refreshproxy(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
' Filling in structure
struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY
struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy)
struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local")
' Allocating memory
Dim intptrStruct As IntPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI))
' Converting structure to IntPtr
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 Module
and when you want to use a proxy, use it like
Code:
refreshproxy("url:port")