Jump to content

Proxy Checker


Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

_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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 1 month later...

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

Link to comment
Share on other sites

  • 8 months later...

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 ;)

Link to comment
Share on other sites

  • 2 years later...

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

Link to comment
Share on other sites

  • 1 year later...

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
 Share

  • Recently Browsing   0 members

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