Jump to content

Recommended Posts

Posted (edited)

Scans a textfile (@ScriptDir & "/proxylist.txt") for addresses and checks to see if the proxy at that address still works. Addresses in this file are placed in the format <ipaddress>:<port> and addresses are separated by lines.

Credit to Zatorg - his Asynchronous sockets UDF is used (included)

#include <GUIConstantsEx.au3>
#include <file.au3>
#include <array.au3>
#Include <GuiListView.au3>

Opt("GUIOnEventMode", 1)

global $PROXY_LIST[1][5]
TCPStartup()

Global $hWs2_32 = -1



;Create the GUI
$win = GUICreate( "Proxy Scanner", 400, 400)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$list = GUICtrlCreateListView( "#  |         IP                         |            Port           |         Status", 10, 10, 380, 330)


Readin_Proxies()
GUISetState()

Global Const $__TCP_WINDOW = GUICreate("Async Sockets UDF")

;Set the status of each proxy.
For $x = 0 to UBound($PROXY_LIST)-2 step 1
    Test_Connection( $x)
    Sleep(100)
Next

While 1
    Sleep(20)
WEnd


Func CLOSEClicked()
    Exit
EndFunc



Func Readin_Proxies()
    ProgressOn( "Proxy Scanner", "Loading...Please Wait.", "populating lists...")

    local $linecount = _FileCountLines( @ScriptDir & "/proxylist.txt")

    ReDim $PROXY_LIST[$linecount][5]
    $filehnd = FileOpen(  @ScriptDir & "/proxylist.txt")
    For $x = 0 to $linecount step 1

        ProgressSet( ($x/$linecount)*100)
        $Line = ""
        While 1                 ;Collect the entire line into a variable.
            $character = FileRead( $filehnd, 1)
            if @error = -1 then ExitLoop 2
            if $character = @CR Then ExitLoop
            if $character = @LF then ContinueLoop
            $Line &= $character
        WEnd

        $spl = StringSplit( $Line, ":", 1)
        $PROXY_LIST[$x][0] = $spl[1]
        if $spl[0] >= 2 Then
            $PROXY_LIST[$x][1] = $spl[2]
        Else
            $PROXY_LIST[$x][1] = 80
        EndIf
        $PROXY_LIST[$x][2] = GUICtrlCreateListViewItem( $x&"|"&$spl[1]&"|"&$PROXY_LIST[$x][1]&"|Unknown", $list)
        GUICtrlSetBkColor( $PROXY_LIST[$x][2], 0xFFFFAA)

    Next

    FileClose( $filehnd)
    ProgressOff()
EndFunc




Func Test_Connection( $arrayslot)
    local $SocketID = ___ASocket()
    ___ASockSelect( $SocketID, $__TCP_WINDOW, 0x401 + $arrayslot,  BitOR( 1, 2, 16, 32))
    GUIRegisterMsg( 0x401 + $arrayslot, "Opensocket_data_" )
    ___ASockConnect( $SocketID, $PROXY_LIST[$arrayslot][0], $PROXY_LIST[$arrayslot][1])
    $PROXY_LIST[$arrayslot][3] = $SocketID
EndFunc

Func Opensocket_data_( $hWnd, $iMsgID, $WParam, $LParam )
    Local $iError = ___HiWord( $LParam )
    Local $iEvent = ___LoWord( $LParam )
    Abs($hWnd)
    local $Array_Slot = $iMsgID-0x0401 ;No more loops to slow down message delievery!
    local $x = $Array_Slot
    Switch $iEvent

        Case 16
            If $iError Then ;FAILED CONNECTION
                GUICtrlSetData( $PROXY_LIST[$x][2], $x&"|"&$PROXY_LIST[$x][0]&"|"&$PROXY_LIST[$x][1]&"|OFFLINE")
                GUICtrlSetBkColor( $PROXY_LIST[$x][2], 0xEEEEAA)
            Else
                GUICtrlSetData( $PROXY_LIST[$x][2], $x&"|"&$PROXY_LIST[$x][0]&"|"&$PROXY_LIST[$x][1]&"|ONLINE")
                GUICtrlSetBkColor( $PROXY_LIST[$x][2], 0x00FF00)
            EndIf
            ___ASockShutdown($PROXY_LIST[$x][3])
            TCPCloseSocket($PROXY_LIST[$x][2])
    EndSwitch
EndFunc





;==================================================================================================================
;
; Zatorg's Asynchronous Sockets UDF Starts from here.
;
;==================================================================================================================


Func ___ASocket($iAddressFamily = 2, $iType = 1, $iProtocol = 6)
    If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )
    Local $hSocket = DllCall($hWs2_32, "uint", "socket", "int", $iAddressFamily, "int", $iType, "int", $iProtocol)
    If @error Then
        SetError(1, @error)
        Return -1
    EndIf
    If $hSocket[ 0 ] = -1 Then
        SetError(2, ___WSAGetLastError())
        Return -1
    EndIf
    Return $hSocket[ 0 ]
EndFunc   ;==>_ASocket

Func ___ASockShutdown($hSocket)
    If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )
    Local $iRet = DllCall($hWs2_32, "int", "shutdown", "uint", $hSocket, "int", 2)
    If @error Then
        SetError(1, @error)
        Return False
    EndIf
    If $iRet[ 0 ] <> 0 Then
        SetError(2, ___WSAGetLastError())
        Return False
    EndIf
    Return True
EndFunc   ;==>_ASockShutdown

Func ___ASockClose($hSocket)
    If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )
    Local $iRet = DllCall($hWs2_32, "int", "closesocket", "uint", $hSocket)
    If @error Then
        SetError(1, @error)
        Return False
    EndIf
    If $iRet[ 0 ] <> 0 Then
        SetError(2, ___WSAGetLastError())
        Return False
    EndIf
    Return True
EndFunc   ;==>_ASockClose

Func ___ASockSelect($hSocket, $hWnd, $uiMsg, $iEvent)
    If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )
    Local $iRet = DllCall( _
            $hWs2_32, _
            "int", "WSAAsyncSelect", _
            "uint", $hSocket, _
            "hwnd", $hWnd, _
            "uint", $uiMsg, _
            "int", $iEvent _
            )
    If @error Then
        SetError(1, @error)
        Return False
    EndIf
    If $iRet[ 0 ] <> 0 Then
        SetError(2, ___WSAGetLastError())
        Return False
    EndIf
    Return True
EndFunc   ;==>_ASockSelect

; Note: you can see that $iMaxPending is set to 5 by default.
; IT DOES NOT MEAN THAT DEFAULT = 5 PENDING CONNECTIONS
; 5 == SOMAXCONN, so don't worry be happy
Func ___ASockListen($hSocket, $sIP, $uiPort, $iMaxPending = 5); 5 == SOMAXCONN => No need to change it.
    Local $iRet
    Local $stAddress

    If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )

    $stAddress = ___SockAddr($sIP, $uiPort)
    If @error Then
        SetError(@error, @extended)
        Return False
    EndIf

    $iRet = DllCall($hWs2_32, "int", "bind", "uint", $hSocket, "ptr", DllStructGetPtr($stAddress), "int", DllStructGetSize($stAddress))
    If @error Then
        SetError(3, @error)
        Return False
    EndIf
    If $iRet[ 0 ] <> 0 Then
        $stAddress = 0; Deallocate
        SetError(4, ___WSAGetLastError())
        Return False
    EndIf

    $iRet = DllCall($hWs2_32, "int", "listen", "uint", $hSocket, "int", $iMaxPending)
    If @error Then
        SetError(5, @error)
        Return False
    EndIf
    If $iRet[ 0 ] <> 0 Then
        $stAddress = 0; Deallocate
        SetError(6, ___WSAGetLastError())
        Return False
    EndIf

    Return True
EndFunc   ;==>_ASockListen

Func ___ASockConnect($hSocket, $sIP, $uiPort)
    Local $iRet
    Local $stAddress

    If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )

    $stAddress = ___SockAddr($sIP, $uiPort)
    If @error Then
        SetError(@error, @extended)
        Return False
    EndIf

    $iRet = DllCall($hWs2_32, "int", "connect", "uint", $hSocket, "ptr", DllStructGetPtr($stAddress), "int", DllStructGetSize($stAddress))
    If @error Then
        SetError(3, @error)
        Return False
    EndIf

    $iRet = ___WSAGetLastError()
    If $iRet = 10035 Then; WSAEWOULDBLOCK
        Return True; Asynchronous connect attempt has been started.
    EndIf
    SetExtended(1); Connected immediately
    Return True
EndFunc   ;==>_ASockConnect

; A wrapper function to ease all the pain in creating and filling the sockaddr struct
Func ___SockAddr($sIP, $iPort, $iAddressFamily = 2)
    Local $iRet
    Local $stAddress

    If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )

    $stAddress = DllStructCreate("short; ushort; uint; char[8]")
    If @error Then
        SetError(1, @error)
        Return False
    EndIf

    DllStructSetData($stAddress, 1, $iAddressFamily)
    $iRet = DllCall($hWs2_32, "ushort", "htons", "ushort", $iPort)
    DllStructSetData($stAddress, 2, $iRet[ 0 ])
    $iRet = DllCall($hWs2_32, "uint", "inet_addr", "str", $sIP)
    If $iRet[ 0 ] = 0xffffffff Then; INADDR_NONE
        $stAddress = 0; Deallocate
        SetError(2, ___WSAGetLastError())
        Return False
    EndIf
    DllStructSetData($stAddress, 3, $iRet[ 0 ])

    Return $stAddress
EndFunc   ;==>__SockAddr

Func ___WSAGetLastError()
    If $hWs2_32 = -1 Then $hWs2_32 = DllOpen( "Ws2_32.dll" )
    Local $iRet = DllCall($hWs2_32, "int", "WSAGetLastError")
    If @error Then
        ;if $console_out = True then ConsoleWrite("+> _WSAGetLastError(): WSAGetLastError() failed. Script line number: " & @ScriptLineNumber & @CRLF)
        SetExtended(1)
        Return 0
    EndIf
    Return $iRet[ 0 ]
EndFunc   ;==>_WSAGetLastError


; Got these here:
; http://www.autoitscript.com/forum/index.php?showtopic=5620&hl=MAKELONG
Func ___MakeLong($LoWord, $HiWord)
    Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF)); Thanks Larry
EndFunc   ;==>_MakeLong

Func ___HiWord($Long)
    Return BitShift($Long, 16); Thanks Valik
EndFunc   ;==>_HiWord

Func ___LoWord($Long)
    Return BitAND($Long, 0xFFFF); Thanks Valik
EndFunc   ;==>_LoWord




;----------------------------------OTHER AUTOIT INBUILT FUNCS----##

;===============================================================================
;
; Function Name:    _GetIP()
; Description:      Get public IP address of a network/computer.
; Parameter(s):     None
; Requirement(s):   Internet access.
; Return Value(s):  On Success - Returns the public IP Address
;                   On Failure - -1  and sets @ERROR = 1
; Author(s):        Larry/Ezzetabi & Jarvis Stubblefield
;
;===============================================================================
Func _Get_IP()
    Local $ip, $t_ip
    If InetGet("http://checkip.dyndns.org/?rnd1=" & Random(1, 65536) & "&rnd2=" & Random(1, 65536), @TempDir & "\~ip.tmp") Then
        $ip = FileRead(@TempDir & "\~ip.tmp", FileGetSize(@TempDir & "\~ip.tmp"))
        FileDelete(@TempDir & "\~ip.tmp")
        $ip = StringTrimLeft($ip, StringInStr($ip, ":") + 1)
        $ip = StringTrimRight($ip, StringLen($ip) - StringInStr($ip, "/") + 2)
        $t_ip = StringSplit($ip, '.')
        If $t_ip[0] = 4 And StringIsDigit($t_ip[1]) And StringIsDigit($t_ip[2]) And StringIsDigit($t_ip[3]) And StringIsDigit($t_ip[4]) Then
            Return $ip
        EndIf
    EndIf
    If InetGet("http://www.whatismyip.com/?rnd1=" & Random(1, 65536) & "&rnd2=" & Random(1, 65536), @TempDir & "\~ip.tmp") Then
        $ip = FileRead(@TempDir & "\~ip.tmp", FileGetSize(@TempDir & "\~ip.tmp"))
        FileDelete(@TempDir & "\~ip.tmp")
        $ip = StringTrimLeft($ip, StringInStr($ip, "Your ip is") + 10)
        $ip = StringLeft($ip, StringInStr($ip, " ") - 1)
        $ip = StringStripWS($ip, 8)
        $t_ip = StringSplit($ip, '.')
        If $t_ip[0] = 4 And StringIsDigit($t_ip[1]) And StringIsDigit($t_ip[2]) And StringIsDigit($t_ip[3]) And StringIsDigit($t_ip[4]) Then
            Return $ip
        EndIf
    EndIf
    SetError(1)
    Return -1
EndFunc   ;==>_Get_IP

Some Proxies to get you started:

118.96.94.36:8080
69.125.128.138:27977
114.129.97.46:8080
124.195.18.119:80
62.75.145.245:9100
98.183.251.11:27977
173.196.50.100:27977
221.12.61.214:8080
222.186.43.82:1080
69.33.181.42:80
114.129.100.35:8080
64.76.188.126:80
114.129.97.101:8080
212.58.10.10:80
77.241.165.114:8080
159.226.234.7:80
114.59.80.243:8080
190.94.1.195:80
118.182.20.242:8080
41.234.207.197:8080
98.155.37.249:47793
79.125.28.242:8080
24.126.55.101:27977
193.188.125.173:80
124.193.109.15:80
109.203.196.121:808
80.239.243.18:80
218.6.13.35:80
69.136.47.4:27977
216.104.161.208:80
24.179.18.15:12378
189.1.162.4:8080
195.97.254.137:80
117.28.232.186:80
41.215.177.206:8080
110.138.211.56:8080
66.193.15.82:80
124.225.57.10:8080
112.169.94.143:8088
70.44.61.7:1233
204.15.147.149:8080
114.129.98.35:8080
76.18.96.186:27977
180.241.98.194:8080
72.13.94.164:80
209.237.236.110:80
41.205.110.85:8080
91.210.104.104:80
121.14.104.244:80
68.199.165.7:3697
122.70.156.157:80
174.129.133.21:8000
114.129.98.236:8080
75.73.231.37:27977
118.137.65.154:8080
200.167.162.203:8080
187.45.232.176:8080
115.69.216.98:80
70.163.50.203:27977
112.95.238.199:808
193.87.7.65:80
95.0.211.186:8080
182.48.43.12:80
114.129.98.108:8080
222.247.48.221:808
182.48.23.77:8090
69.244.133.182:1168
78.93.242.7:80
114.129.97.49:8080
114.129.98.66:8080
67.192.11.165:80
63.130.248.252:80
210.23.76.200:8080
196.202.83.129:8000
65.32.56.224:1083
68.84.169.216:27977
208.110.220.133:8080
198.12.16.170:80
69.124.240.221:37701
85.214.50.156:8118
222.188.10.1:1080
183.62.24.34:808
114.129.100.143:8080
98.183.9.251:1137
218.19.119.99:8080
203.186.62.125:8080
91.200.171.245:8080
202.4.155.234:808
212.33.237.113:80
163.152.133.22:8080
88.85.125.78:8080
64.4.98.119:27977
89.188.141.51:80
212.51.207.126:80
118.174.36.190:8080
200.82.126.87:80
212.85.146.236:80
96.240.2.237:42863
120.136.22.154:8080
111.67.80.116:80
61.4.234.216:8080
66.119.43.37:80
122.227.22.214:63000
114.129.98.231:8080
80.239.242.225:80
82.160.44.55:8080
72.3.245.248:80
222.124.25.74:80
119.235.53.131:80
98.199.27.21:27977
85.254.213.163:80
61.4.219.6:8080
93.189.5.138:8080
195.189.142.69:80
212.209.194.144:80
202.159.8.74:8080
118.97.13.60:8080
88.87.215.114:81
67.84.134.22:27977
114.129.98.37:8080
116.55.19.96:1080
203.142.72.107:80
175.111.89.16:8080
99.248.60.100:1939
63.130.248.251:80
62.129.243.242:8080
200.242.222.139:80
114.129.98.212:8080
193.160.201.95:80
202.212.166.90:8080
189.47.194.196:8080
114.129.99.161:8080
114.129.97.136:8080
59.77.17.24:8080
98.109.59.184:1797
114.129.100.77:8080
114.129.99.254:8080
98.222.69.66:27977
201.75.73.131:8080
24.90.235.196:27977
98.208.56.122:10971
201.234.133.41:1080
46.0.203.7:80
67.184.98.250:27977
92.61.188.141:8080
65.34.150.112:27977
112.216.29.245:80
114.129.98.10:8080
67.249.168.198:8085
188.40.173.106:80
83.170.116.143:80
61.4.219.10:8080
66.65.70.65:1252
159.226.251.180:83
80.239.242.242:80
76.100.17.159:27977
209.62.20.171:80
193.28.52.145:80
203.130.195.193:8080
189.200.240.68:80
68.62.73.13:1733
180.243.86.215:8080
118.96.142.61:80
92.63.52.73:8080
88.250.70.208:80
95.168.181.219:8080
118.97.83.245:8090
75.125.143.84:80
189.17.0.35:8000
178.213.33.129:443
24.234.67.140:27977
209.235.218.83:80
119.40.100.113:8080
114.129.98.142:8080
76.31.62.106:27977
202.77.107.34:80
189.3.160.42:80
114.129.97.42:8080
87.226.106.203:8080
64.34.213.148:80
190.40.28.83:8080
201.67.138.98:80
82.117.192.227:8080
193.252.48.31:8080
92.61.189.129:8080
209.62.20.196:80
118.98.216.27:8080
41.73.2.35:8080
66.92.169.250:80
194.170.16.75:8080
173.212.195.196:1337
58.246.182.60:8088
65.23.156.161:80
134.37.254.27:80
68.111.211.98:27977
77.78.3.83:9090
190.41.192.210:8080
87.250.129.151:80
62.176.18.25:80
174.134.42.74:80
220.227.100.59:8080
217.91.32.16:8080
91.194.246.49:8080
218.242.254.74:1080
200.20.0.246:80
119.235.53.130:80
67.63.92.33:27977
180.246.179.34:8080
110.137.40.102:8080
58.246.200.114:80
68.38.24.73:48397
195.189.142.132:80
69.123.91.137:27977
221.1.96.22:443
71.174.102.72:80
125.162.32.222:80
66.119.43.36:80
68.39.144.196:1385
221.215.106.82:1337
119.15.86.20:8080
68.118.109.226:27977
70.158.130.208:8080
125.40.181.247:8080
114.129.99.111:8080
117.41.228.6:2
210.48.147.36:80
67.53.116.252:80
24.109.239.138:80
114.129.99.72:8080
211.100.4.71:80
218.21.91.214:80
58.241.40.228:1080
200.88.125.4:8008
187.111.11.72:8080
118.122.88.7:8080
187.11.250.175:8080
114.129.99.144:8080
196.23.152.220:80
148.235.153.178:8080
91.194.247.234:8080
165.228.212.223:80
80.82.235.179:80
187.111.223.10:8080
202.181.164.100:80
216.40.33.31:80
195.162.130.20:8080
188.94.228.46:8080
202.147.198.69:80
202.212.166.124:8080
222.35.137.220:80
114.129.98.241:8080
41.73.15.211:8080
114.129.98.175:8080
188.40.173.101:80
98.110.80.191:1734
213.29.63.62:8080
114.129.98.146:8080
114.129.99.125:8080
60.191.232.230:80
115.124.66.30:8080
180.241.106.54:80
202.117.35.249:80
114.129.98.99:8080
190.1.137.130:8080
114.129.100.237:8080
81.217.6.239:80
196.214.141.221:8080
98.255.196.232:1590
68.49.201.216:27977
122.52.117.92:8080
202.143.148.61:80
222.70.137.238:80
222.124.136.103:8080
187.85.160.3:80
189.73.221.49:80
64.120.166.23:1080
114.129.100.55:8080
87.197.42.171:8080
180.246.114.66:8080
119.36.138.131:1080
67.223.227.21:80
221.233.134.87:8080
94.195.11.147:80
71.72.30.250:28052
209.226.31.160:80
74.197.10.24:27977
209.200.46.108:80
8.4.59.117:80
109.74.202.89:80
119.40.100.9:8080
200.63.71.225:8080
110.138.51.76:8080
203.172.167.8:8080
82.177.67.1:8080
77.67.17.17:8080
76.188.219.178:4458
221.229.119.186:80
81.0.235.172:80
216.104.161.120:80
110.138.211.56:80
212.177.17.74:80
186.24.13.125:8080
118.97.129.74:8080
80.239.242.223:80
114.129.99.83:8080
114.129.99.210:8080
202.4.155.234:1080
67.159.52.76:8080
68.192.216.10:1337
219.235.228.182:1080
118.98.215.10:8080
200.81.59.101:80
202.143.149.36:8080
195.49.188.226:80
123.125.156.92:80
92.61.191.17:8080
201.208.100.167:8080
68.169.183.117:27977
112.105.69.163:80
61.4.11.193:8080
122.72.20.218:80
200.148.135.234:8080
203.199.9.4:80
74.114.116.101:80
122.144.1.212:8080
97.65.164.214:8080
200.171.25.203:8000
41.134.81.234:80
119.235.53.130:8080
125.165.125.83:8080
160.79.35.27:80
24.0.213.12:8008
24.0.82.254:58029
91.90.120.40:1080
218.61.196.69:8080
114.129.99.243:8080
114.129.98.131:8080
70.174.29.174:27977
114.129.98.211:8080
202.51.107.34:8080
61.207.158.6:8088
122.248.213.39:80
84.22.27.4:80
110.136.207.37:80
77.66.25.53:80
98.200.72.55:1908
119.110.81.226:8080
85.214.61.55:80
202.44.53.94:80
75.69.78.108:1405
194.187.110.72:80
118.96.94.45:80
200.85.79.22:80
75.64.57.44:57907
203.142.71.149:8080
202.146.129.133:8080
67.165.33.228:27977
202.191.122.239:80
202.99.27.3:8080
61.4.253.175:8080
218.28.233.214:9000
114.129.97.51:8080
114.129.100.252:8080
63.134.178.211:27977
87.119.213.25:80
109.254.88.136:1080
66.235.245.150:80
212.118.224.151:80
80.206.48.100:80
67.182.241.56:27977
24.242.167.123:8080
210.8.224.2:80
114.129.100.86:8080
77.27.27.65:16589
210.94.189.210:8080
195.117.121.2:1080
92.63.96.135:8080
210.31.160.55:9
212.49.64.3:80
98.198.54.147:27977
220.113.15.220:8081
195.89.37.91:80
59.39.67.158:8080
218.92.252.38:8080
122.155.13.18:80
202.103.67.98:80
189.72.173.220:80
24.228.100.186:27977
76.16.165.171:1091
87.120.166.182:88
189.22.150.34:80
174.142.125.161:80
187.4.118.221:80
114.129.98.129:8080
83.36.60.252:80
112.175.251.56:8080
208.45.143.104:80
217.20.163.72:80
61.185.143.178:8080
188.142.49.254:8080
193.179.209.200:80
91.90.122.1:1080
209.62.20.239:80
64.255.180.31:80
67.205.67.45:80
222.124.5.82:8080
80.239.242.112:80
98.200.64.178:1174
75.190.141.203:27977
174.129.195.8:8123
87.106.197.98:443
195.248.250.142:80
114.129.98.73:8080
85.214.152.105:1337
68.52.107.181:27977
74.213.164.188:80
114.129.100.249:8080
200.125.243.122:8080
219.83.100.204:8080
64.211.66.142:80
62.216.165.131:8080
175.41.151.200:80
180.246.116.28:80
221.204.246.161:80
201.75.71.33:8080
24.16.196.237:1907
168.176.5.223:80
61.4.11.19:8080
61.6.245.46:80
98.212.102.97:1628
190.144.55.147:8080
120.136.21.131:80
222.69.91.144:63000
216.6.202.27:80
193.255.195.72:80
213.192.85.98:8080
189.22.105.205:8080
193.190.145.92:80
184.22.251.43:80
204.12.250.147:64616
118.96.78.2:8080
108.36.100.249:14925
119.82.239.62:8080
219.117.212.126:8080
200.206.175.108:8080
79.106.1.83:8080
173.203.102.80:8080
193.255.192.190:80
63.166.247.31:80
187.12.229.178:8080
174.108.120.102:3390
75.126.176.161:80
118.96.78.16:8080
24.215.22.136:3969
72.55.130.45:80
178.165.55.79:8008
114.129.99.131:8080
66.7.124.203:27977
117.102.83.218:80
196.28.237.43:8080
24.230.247.138:29505
202.69.33.143:8080
61.4.251.243:8080
58.20.41.168:1080
111.67.80.84:80
114.113.228.202:1080
180.249.131.31:80
112.95.238.199:1080
218.29.89.203:8080
213.41.80.7:80
200.37.204.93:8080
201.23.107.11:8080
114.129.97.73:8080
80.237.156.177:80
184.22.248.124:8080
190.145.116.22:80
120.29.157.234:8080
118.96.30.11:8080
82.99.211.50:8080
114.129.98.127:8080
72.167.202.24:8000
202.212.165.205:8080
75.102.3.18:80
97.81.175.62:1414
222.237.79.140:80
111.68.100.8:8080
210.48.147.82:80
200.97.9.234:8080
92.61.188.41:8080
75.125.242.146:80
61.191.187.23:8080
24.0.68.158:1355
58.59.31.82:1337
211.239.121.249:43565
186.136.72.41:80
118.96.94.45:8080
200.181.30.37:8080
173.22.82.104:13229
118.98.202.123:8080
85.185.105.26:8080
66.75.93.204:8088
190.147.197.35:8080
70.185.184.141:11331
111.68.28.27:8080
216.104.161.205:80
122.48.31.74:80
114.129.100.126:8080
173.217.173.248:27977
222.124.144.178:80
180.247.218.28:8080
114.129.99.129:8080
114.129.98.159:8080
72.218.74.95:27977
116.90.162.147:80
112.65.216.174:1080
221.2.144.135:1080
118.69.192.62:8088
202.74.65.69:8080
122.48.31.73:80
196.202.41.254:80
202.64.130.236:80
114.129.97.66:8080
210.166.221.61:8080
196.3.182.146:80
202.65.122.226:8080
118.122.88.44:80
58.221.129.158:1337
118.96.136.76:80
61.166.144.29:80
189.31.180.236:80
114.129.100.238:8080
202.43.74.66:8080
117.102.226.142:80
124.225.55.30:8080
115.236.98.109:80
203.251.21.105:80
69.195.207.230:7257
190.77.30.109:8080
115.124.65.94:8080
116.205.127.43:8080
216.249.85.43:27977
118.97.224.2:8080
110.139.180.151:8080
118.97.84.20:80
222.124.218.164:8080
180.244.211.224:8080
66.229.95.87:8085
110.138.207.144:8080
187.4.82.68:8080
115.124.75.36:80
200.63.71.54:8080
98.209.176.218:1565
200.181.109.20:80
115.124.73.166:80
115.124.64.241:8080
202.149.90.234:8080
24.46.89.172:1147
187.4.104.99:8080
125.164.72.200:8080
98.222.112.179:27977
24.3.70.138:27977
180.243.231.55:8080
74.109.211.64:1564
220.237.25.106:1087
8080
78.188.153.229:8080
210.48.147.52:80
208.64.176.157:80
69.125.100.96:27977
58.96.134.22:8000
24.139.43.249:8085
184.72.55.152:443
114.129.100.80:8080
119.109.115.149:8909
67.167.89.121:14073
71.82.96.242:1421
109.87.143.120:9
173.74.178.23:31779
68.144.41.195:17719
71.234.200.202:37373
24.13.125.182:2003
66.27.207.82:27977
72.240.34.23:80
182.48.167.10:8080

EDIT: All the Proxies in this list are legal, public Proxies so dont get any ideas!

Edited by hyperzap

ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search

Posted

The _GetIP() you have will fail if dyndns.org is down (see new beta's & _GetIP in my signature) & some of the Functions you've included are already in the WinAPI.au3 UDF e.g. _WinAPI_LoWord()/_WinAPI_HiWord(). It's only a little bit of advice :)

I can understand if you don't like <Include> files but then you're using Functions like _FileCountLines() so I can't see why you wouldn't use WinAPI. ;)

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Posted

The _GetIP() you have will fail if dyndns.org is down (see new beta's & _GetIP in my signature) & some of the Functions you've included are already in the WinAPI.au3 UDF e.g. _WinAPI_LoWord()/_WinAPI_HiWord(). It's only a little bit of advice :)

I can understand if you don't like <Include> files but then you're using Functions like _FileCountLines() so I can't see why you wouldn't use WinAPI. ;)

_GetIP() isnt used in this script; its a relic from one of my other scripts that the async handling was taken from.

ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search

Posted

Amazing job.

Doesn't work on my Enterprise, though. The Firewall is a bitch here :)

I think the problem is mainly due to how newer versions of windows handle async sockets. I have had experience where the system has failed entirely.

ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search

Posted

_GetIP() isnt used in this script; its a relic from one of my other scripts that the async handling was taken from.

OK, I didn't check in the Script to see if it was used.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Posted

Hmmm.

It appears that only 40 connections can be pending at one time.

Does anyone know If this is a limitation of windows? Or is it avoidable?

ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search

  • 1 month later...
Posted (edited)

I have an issue with your script.

Each time, on every list, the last proxy keeps on Unknown.

Have you an idea?

Edited by Frogserv
Posted

windows doesnt like having too many pending connections. its not meant to be perfect, just so you know, i only spent half an hour on this script.

ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search

  • 8 months later...
Posted

This isn't too old to pull back up; but I just wanted to say that after a few modifications I was able to get this to do what I wanted. At work we have these crawler which use proxies and a lot of them fail quickly, but I'm too lazy to remove them from the list. This has found all of the duff connections and I've since removed them!

Thanks ;)

  • 2 years later...
Posted

Hello and thank you!

I need, if I can help someone ...
I made a simple script and try to adjust it, but I find it hard to understand this UDF.
If anyone can help ... thank you so much!

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 380, 246, 320, 249)
$ListView1 = GUICtrlCreateListView("IP|Port", 8, 48, 346, 150)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 200)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 80)
$Button1 = GUICtrlCreateButton("Add Proxy List (IP:PROXY)", 8, 8, 243, 25)
$Button2 = GUICtrlCreateButton("Check Proxy", 8, 208, 147, 25)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            $Add = FileOpenDialog("", @DesktopDir & "\", "Txt(*.txt)", 1)
            If Not @error Then
                $open_list = FileOpen($Add, 0)
                For $q = 1 To _FileCountLines($Add)
                    $read = FileReadLine($open_list, $q)
                    $split = StringSplit($read, ":", 1)
                    If IsArray($split) Then
                        GUICtrlCreateListViewItem($split[1] & "|" & $split[2], $ListView1)
                    EndIf
                Next
                FileClose($Add)
            EndIf
        Case $Button2
            ;.....
    EndSwitch
WEnd

proxylist.txt

  • 1 year later...
Posted

amazing script!

but i would like to add colon with the ping , but really i can't understand where exactly to put the command Ping()...

can someone help me with it??? 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...