Option Explicit Private Type INTERNET_PROXY_INFO dwaccesstype As Long lpszproxy As Long lpszproxybypass As Long End Type Private Const INTERNET_OPTION_PROXY = 38 Private Declare Function internetsetoption Lib "wininet.dll" Alias "InternetSetOptionA" (ByVal hinternet As Long, ByVal dwoption As Long, ByRef lpbuffer As Any, ByVal dwbufferlength As Long) As Long Private Declare Function internetqueryoption Lib "wininet.dll" Alias "InternetQueryOptionA" (ByVal hinternet As Long, ByVal dwoption As Long, ByRef lpbuffer As Any, ByRef dwbufferlength As Long) As Long Private Declare Sub copymemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef pdest As Any, ByRef psource As Any, ByVal length As Long) Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpstring1 As String, ByVal lpstring2 As Long) As Long Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpstring As Any) As Long Public Function getproxyaddressandport(Optional proxytype As String) As String Dim proxyinfo As INTERNET_PROXY_INFO Dim arrbuffer() As Byte Dim straddress As String Dim strbypass As String ReDim arrbuffer(0 To 4095) internetqueryoption 0&, INTERNET_OPTION_PROXY, arrbuffer(0), UBound(arrbuffer) - LBound(arrbuffer) + 1 copymemory proxyinfo, arrbuffer(0), LenB(proxyinfo) straddress = VBA.Space(lstrlen(proxyinfo.lpszproxy)) lstrcpy ByVal straddress, proxyinfo.lpszproxy '不使用代理的地址 strbypass strbypass = VBA.Space(lstrlen(proxyinfo.lpszproxybypass)) lstrcpy ByVal strbypass, proxyinfo.lpszproxybypass 'getproxyaddressandport = vba.trim(vba.replace(straddress, " ", ";")) ' & ";" & vba.replace(strbypass, " ", ";")) getproxyaddressandport = VBA.Trim(VBA.Replace(straddress, " ", ";") & ";" & VBA.Replace(strbypass, " ", ";")) Dim proxyarray() As String proxyarray = Split(getproxyaddressandport, ";") Dim i As Integer For i = LBound(proxyarray) To UBound(proxyarray) If proxyarray(i) Like "*" & proxytype & "=*" Then getproxyaddressandport = VBA.Replace(proxyarray(i), proxytype & "=", "") Exit For End If Next i End Function
Private Sub command1_click() MsgBox getproxyaddressandport("http") MsgBox getproxyaddressandport("ftp") MsgBox getproxyaddressandport("gopher") End Sub
Private Type INTERNET_PROXY_INFO
dwaccesstype As Long
lpszproxy As Long
lpszproxybypass As Long
End Type
Private Const INTERNET_OPTION_PROXY = 38
Private Declare Function internetsetoption Lib "wininet.dll" Alias "InternetSetOptionA" (ByVal hinternet As Long, ByVal dwoption As Long, ByRef lpbuffer As Any, ByVal dwbufferlength As Long) As Long
Private Declare Function internetqueryoption Lib "wininet.dll" Alias "InternetQueryOptionA" (ByVal hinternet As Long, ByVal dwoption As Long, ByRef lpbuffer As Any, ByRef dwbufferlength As Long) As Long
Private Declare Sub copymemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef pdest As Any, ByRef psource As Any, ByVal length As Long)
Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpstring1 As String, ByVal lpstring2 As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpstring As Any) As Long
Public Function getproxyaddressandport(Optional proxytype As String) As String
Dim proxyinfo As INTERNET_PROXY_INFO
Dim arrbuffer() As Byte
Dim straddress As String
Dim strbypass As String
ReDim arrbuffer(0 To 4095)
internetqueryoption 0&, INTERNET_OPTION_PROXY, arrbuffer(0), UBound(arrbuffer) - LBound(arrbuffer) + 1
copymemory proxyinfo, arrbuffer(0), LenB(proxyinfo)
straddress = VBA.Space(lstrlen(proxyinfo.lpszproxy))
lstrcpy ByVal straddress, proxyinfo.lpszproxy
'不使用代理的地址 strbypass
strbypass = VBA.Space(lstrlen(proxyinfo.lpszproxybypass))
lstrcpy ByVal strbypass, proxyinfo.lpszproxybypass
'getproxyaddressandport = vba.trim(vba.replace(straddress, " ", ";")) ' & ";" & vba.replace(strbypass, " ", ";"))
getproxyaddressandport = VBA.Trim(VBA.Replace(straddress, " ", ";") & ";" & VBA.Replace(strbypass, " ", ";"))
Dim proxyarray() As String
proxyarray = Split(getproxyaddressandport, ";")
Dim i As Integer
For i = LBound(proxyarray) To UBound(proxyarray)
If proxyarray(i) Like "*" & proxytype & "=*" Then
getproxyaddressandport = VBA.Replace(proxyarray(i), proxytype & "=", "")
Exit For
End If
Next i
End Function
Private Sub command1_click()
MsgBox getproxyaddressandport("http")
MsgBox getproxyaddressandport("ftp")
MsgBox getproxyaddressandport("gopher")
End Sub
http://support.microsoft.com/?kbid=223025
非常完整的获得网络适配器的属性,包括网关IP地址。
ipconfig/all >>c:/ip.config
然后打开c:/ip.config文件,读取Default Gateway . . . . . . . . . : *.*.*.*就可以了
你跑来做什么广告!!!!!!!//lxcc(虫子|专注于抢分)
你的不行。