home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / Instant_Pr1856912232005.psc / cNavigateTo.cls < prev    next >
Text File  |  2005-02-23  |  2KB  |  87 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "cNavigateTo"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Option Explicit
  15.  
  16. Private Declare Function GetTickCount Lib "kernel32" () As Long
  17.  
  18.  
  19. Dim odoc               As HTMLDocument
  20. Dim WithEvents newDoc  As HTMLDocument
  21. Attribute newDoc.VB_VarHelpID = -1
  22.  
  23.  
  24. Event OperationTimedOut()
  25. Event ProxyInfo(proxyAddress$, proxyPort$, proxyType$, proxyLocation$)
  26.             
  27.  
  28. Sub CreateProxyDoc(Optional secondsTimeOut As Long = 6)
  29.  
  30.  ' "download" the webpage invisibly
  31.  '  we dont need a visible interface and without
  32.  '  any interface updating the page downloads much faster
  33.  Set newDoc = New HTMLDocument
  34.  Set odoc = newDoc.createDocumentFromUrl("http://www.proxy4free.com/page1.html", vbNullString)
  35.  
  36.  Dim starttime  As Long
  37.  starttime = GetTickCount
  38.  
  39.  ' we wait for the "complete" event to fire
  40.  ' we want a timeout value so we dont end
  41.  ' up in an endless loop in case the site
  42.  ' is down or there is internet problem
  43.  Do
  44.    DoEvents
  45.    If odoc.readyState = "complete" Then
  46.         Exit Do
  47.    Else
  48.       If (GetTickCount - starttime) > _
  49.       (secondsTimeOut * 1000) Then
  50.           RaiseEvent OperationTimedOut
  51.       End If
  52.    End If
  53.  Loop
  54.  
  55.  
  56.  Dim gen  As HTMLGenericElement
  57.  Dim gen2 As HTMLGenericElement
  58.  Dim gen3 As HTMLGenericElement
  59.  Dim gen4 As HTMLGenericElement
  60.  Dim i    As Integer
  61.  Dim ret  As Integer
  62.  
  63.  ' "TD" is a web element whos type is table cel
  64.  For i = 0 To odoc.getElementsByTagName("TD").length - 1
  65.      Set gen = odoc.getElementsByTagName("TD")(i)
  66.      '  means we have found an ip address ( xxx.xxx.xxx.xxx)
  67.      If UBound(Split(gen.innerText, ".")) = 3 Then
  68.        Set gen2 = odoc.getElementsByTagName("TD")(i + 1)
  69.        Set gen3 = odoc.getElementsByTagName("TD")(i + 2)
  70.        Set gen4 = odoc.getElementsByTagName("TD")(i + 3)
  71.        RaiseEvent ProxyInfo(gen.innerText, gen2.innerText, gen3.innerText, gen4.innerText)
  72.        ret = (ret + 1)
  73.        ' 25 potential proxy servers should be enouph
  74.        If ret > 25 Then Exit For
  75.      End If
  76.  Next
  77.  
  78.  ' clean up code
  79.  Set gen = Nothing
  80.  Set gen2 = Nothing
  81.  Set gen3 = Nothing
  82.  Set odoc = Nothing
  83.  Set newDoc = Nothing
  84.  
  85. End Sub
  86.  
  87.