|
Half asleep when writing this...
# Online Proxies (Direct URL) - 5K+ Proxies
# Proxy Archive (Direct URL) - 50K+ Proxies
- working-proxies-history-geo-beautify.json
- working-proxies-history.json
- working-proxies-history.txt
- working-proxies-history.csv
# About the Proxies
— Checked & Tested Every 2 Hours (Socket Connection)
— SOCKS4, SOCKS5, HTTP & HTTPS
— No Authentication Required
— Port 4153 // 4145 = FAST
— JSON, TXT & CSV Format
— Free
# Quick Usage Suggestion
— Useful for testing stability & performance of your Login/Game Server.
— Could be used to assist with preventing bot flooding/attacks to your RSPS/Application.
— You can also block these IP's from connecting to your server (if you wish), this list is updated every 6 hours & every proxy is tested.
— Works for RS Clients & Headless Clients, such as @JayArrowz's RS2/OSRS Headless Client.
# Geolocation Data
Graphs, Tables & Data (Excel) Download Raw Data (JSON) View Raw Data (CSV) View Raw Data (XML) View Raw Data (YAML) View
Extra - Source of ProxyBuilder App (GitHub), used to build the lists.
All of the above can be improved a ton, but it works !
Last edited by jet kai; 10-03-2021 at 08:01 PM. Reason: geo table added
Insane contribution! This is priceless. Tyvm!
Mind explaining how I can use it? Thanks
Yea, if you want to use it for testing if a bot flood/bruteforce attack would still work with proxies, you could use these to test if any get through. There are API’s that can tell if the attacker is using a proxy, or if the IP is high risk. There is always ways around it with residential proxies, but this is a good first step… and the uses case I can think of !
Also, if you needed proxies for another application that’s not related to RS, there’s a list!
You can use JayArrowz’s Headless Client - he’s already popped in the API in there (if you want to simulate player logins). Depending on the source, you’ll just need to modify the Login Packets and you’ll be good to go!
Just going to post this snippet for this thread since it's relevant. But if you want to use any of those IP's in any type of application you have, the following is a great start:
And if SSL doesn't work, for testing you can use this and call it before you make the http request:Code:public static void main(String[] args) { URL url = new URL("https://mydomain.com"); Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("70.166.167.55", 57745)); //replace this with any of the sock5 IP's from the repo HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy); System.out.println(connection.getResponseCode()); //200 if OK }
Code:private static void trustAllSSL() { TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] arg0, String arg1) {} @Override public void checkServerTrusted(X509Certificate[] arg0, String arg1) {} } }; SSLContext sc=null; try { sc = SSLContext.getInstance("SSL"); } catch (NoSuchAlgorithmException e) { /* Ignore */ } try { sc.init(null, trustAllCerts, new java.security.SecureRandom()); } catch (KeyManagementException e) { /* Ignore */ } HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HostnameVerifier validHosts = (arg0, arg1) -> true; HttpsURLConnection.setDefaultHostnameVerifier(validHosts); }
Yea, that's super good for websites - If you wanted to create a Socket in kt for reading/writing data, you could also do something like this:
Code:private fun useSocksProxy(serverAddress: String?, serverPort: Int): ClientSocket? { val proxy = Proxy(Proxy.Type.SOCKS, InetSocketAddress(proxyAddress, proxyPort)) val socket = Socket(proxy) if(socks4) forceSocks4(socket) try { socket.soTimeout = 5000 socket.tcpNoDelay = true socket.connect(InetSocketAddress(serverAddress, serverPort)) } catch (e : IOException) { socket.close() } if(socket.isClosed) { if(attempt == 1) init() return null } return ClientSocket().init(socket) } private fun useHttpProxy(serverAddress: String?, serverPort: Int): ClientSocket? { val proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress(proxyAddress, proxyPort)) val iNet : SocketAddress = proxy.address() val iNet2 = iNet as InetSocketAddress val socket = Socket(iNet2.hostName, iNet2.port) try { socket.soTimeout = 5000 val outStream: OutputStream = socket.getOutputStream() outStream.write(("CONNECT $serverAddress:$serverPort HTTP/1.0\n\n").byteInputStream(StandardCharsets.ISO_8859_1).readBytes()) outStream.flush() val inStream = BufferedReader(InputStreamReader(socket.getInputStream())) val httpConLine = inStream.readLine() if(Constants.DEBUG_MODE) println(httpConLine) } catch (e : IOException) { if(Constants.DEBUG_MODE) println(e.message) socket.close() } if(socket.isClosed) { if(attempt == 1) init() return null } return ClientSocket().init(socket) } /** * Requires JDK 1.8 {REFLECTION} */ private fun forceSocks4(socket : Socket) { val setSockVersion : Method val sockImplField : Field = socket.javaClass.getDeclaredField("impl") sockImplField.isAccessible = true val socksImpl : SocketImpl = sockImplField.get(socket) as SocketImpl val clazzSocksImpl: Class<*> = socksImpl.javaClass setSockVersion = clazzSocksImpl.getDeclaredMethod("setV4") setSockVersion.isAccessible = true setSockVersion?.invoke(socksImpl) sockImplField.set(socket, socksImpl) }
Added CSV format, proxy archive & proxy-list updates every 2 hours instead of every 6 hours
The proxy archive contains every single proxy that works/had worked (Verifying they are/were a real proxy).
CSV:
Archive:
Last edited by jet kai; 09-25-2021 at 09:40 AM.
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |
Tags for this Thread |