Visual Basic 6

[소스] IP 바꾸기


mod_change_ip.bas




'Module

Option Explicit



Private Type INTERNET_PER_CONN_OPTION

dwOption As Long

dwValue1 As Long

dwValue2 As Long

End Type

Private Type INTERNET_PER_CONN_OPTION_LIST

dwSize As Long

pszConnection As Long

dwOptionCount As Long

dwOptionError As Long

pOptions As Long

End Type

Private Const INTERNET_PER_CONN_FLAGS As Long = 1

Private Const INTERNET_PER_CONN_PROXY_SERVER As Long = 2

Private Const INTERNET_PER_CONN_PROXY_BYPASS As Long = 3

Private Const PROXY_TYPE_DIRECT As Long = &H1

Private Const PROXY_TYPE_PROXY As Long = &H2

Private Const INTERNET_OPTION_REFRESH As Long = 37

Private Const INTERNET_OPTION_SETTINGS_CHANGED As Long = 39

Private Const INTERNET_OPTION_PER_CONNECTION_OPTION As Long = 75

Private Declare Function InternetSetOption _

Lib "wininet.dll" Alias "InternetSetOptionA" ( _

ByVal hInternet As Long, ByVal dwOption As Long, _

lpBuffer As Any, ByVal dwBufferLength As Long) As Long



' Set Proxy



Public Function SetConnectionOptions(ByVal conn_name As String, ByVal proxy_full_addr As String) As Boolean

' conn_name: active connection name. (LAN = "")

' proxy_full_addr : eg "193.28.73.241:8080"

Dim list As INTERNET_PER_CONN_OPTION_LIST

Dim bReturn As Boolean

Dim dwBufSize As Long

Dim options(0 To 2) As INTERNET_PER_CONN_OPTION

Dim abConnName() As Byte

Dim abProxyServer() As Byte

Dim abProxyBypass() As Byte


dwBufSize = Len(list)


' Fill out list struct.

list.dwSize = Len(list)


' NULL == LAN, otherwise connection name.

abConnName() = StrConv(conn_name & vbNullChar, vbFromUnicode)

list.pszConnection = VarPtr(abConnName(0))


' Set three options.

list.dwOptionCount = 3



' Set flags.

options(0).dwOption = INTERNET_PER_CONN_FLAGS

options(0).dwValue1 = PROXY_TYPE_DIRECT Or PROXY_TYPE_PROXY



' Set proxy name.

options(1).dwOption = INTERNET_PER_CONN_PROXY_SERVER

abProxyServer() = StrConv(proxy_full_addr & vbNullChar, vbFromUnicode)

options(1).dwValue1 = VarPtr(abProxyServer(0)) '//"http://proxy:80"



' Set proxy override.

options(2).dwOption = INTERNET_PER_CONN_PROXY_BYPASS

abProxyBypass() = StrConv("local" & vbNullChar, vbFromUnicode)

options(2).dwValue1 = VarPtr(abProxyBypass(0))



list.pOptions = VarPtr(options(0))

' Make sure the memory was allocated.

If (0& = list.pOptions) Then

' Return FALSE if the memory wasn't allocated.

Debug.Print "Failed to allocate memory in SetConnectionOptions()"

SetConnectionOptions = 0

End If



' Set the options on the connection.

bReturn = InternetSetOption(0, INTERNET_OPTION_PER_CONNECTION_OPTION, list, dwBufSize)



' Free the allocated memory.

Erase options

Erase abConnName

Erase abProxyServer

Erase abProxyBypass

dwBufSize = 0

list.dwOptionCount = 0

list.dwSize = 0

list.pOptions = 0

list.pszConnection = 0

Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, ByVal 0&, 0)

Call InternetSetOption(0, INTERNET_OPTION_REFRESH, ByVal 0&, 0)

SetConnectionOptions = bReturn

End Function





' Disable Proxy



Public Function DisableConnectionProxy(ByVal conn_name As String) As Boolean

' conn_name: active connection name. (LAN = "")

Dim list As INTERNET_PER_CONN_OPTION_LIST

Dim bReturn As Boolean

Dim dwBufSize As Long

Dim options(0) As INTERNET_PER_CONN_OPTION

Dim abConnName() As Byte


dwBufSize = Len(list)


' Fill out list struct.

list.dwSize = Len(list)


' NULL == LAN, otherwise connectoid name.

abConnName() = StrConv(conn_name & vbNullChar, vbFromUnicode)

list.pszConnection = VarPtr(abConnName(0))


' Set three options.

list.dwOptionCount = 1



' Set flags.

options(0).dwOption = INTERNET_PER_CONN_FLAGS

options(0).dwValue1 = PROXY_TYPE_DIRECT



list.pOptions = VarPtr(options(0))

' Make sure the memory was allocated.

If (0 = list.pOptions) Then

' Return FALSE if the memory wasn't allocated.

Debug.Print "Failed to allocate memory in DisableConnectionProxy()"

DisableConnectionProxy = 0

End If



' Set the options on the connection.

bReturn = InternetSetOption(0, INTERNET_OPTION_PER_CONNECTION_OPTION, list, dwBufSize)


' Free the allocated memory.

Erase options

Erase abConnName

dwBufSize = 0

list.dwOptionCount = 0

list.dwSize = 0

list.pOptions = 0

list.pszConnection = 0

Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, ByVal 0&, 0)

Call InternetSetOption(0, INTERNET_OPTION_REFRESH, ByVal 0&, 0)

DisableConnectionProxy = bReturn

End Function



,

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

Today :
Yesterday :
Total :

태그