#!/usr/bin/perl
use strict;
use warnings;
use IO::Socket::INET;
# SOCKS Proxy List Checker
# Coded by sToRm
# Accepts proxy list in
# 1.2.3.4:1111 format
if ( @ARGV != 1 ) {
print "Usage: $0 <file>\n";
exit(1);
}
open(PROXIES, "<$ARGV[0]") or die($ARGV[0].' wasn\'t found');
open(VALID, '>>valid.txt') or die('valid.txt isn\'t writable');
my ($connectable, $unconnectable, $invalid) = (0, 0, 0);
while(<PROXIES>) {
chomp($_);
my $line = $_;
if ($line =~ /([0-9]){1,3}.([0-9]){1,3}.([0-9]){1,3}:([0-9]){1,5}/) {
my @proxy = split(/:/, $line);
my $SOCK = IO::Socket::INET->new (
PeerAddr => $proxy[0],
PeerPort => $proxy[1],
Timeout => 2,
);
if ( $SOCK ) {
print "[+] $line\n";
print VALID $line."\n";
++$connectable;
} else {
print "[-] $line\n";
++$unconnectable;
}
} else {
print "[-] $line is invalid\n";
++$invalid;
}
}
my $total = $connectable + $unconnectable + $invalid;
print "\nProxy list exhausted\n";
print "Connectable: $connectable\n";
print "Unconnectable: $unconnectable\n";
print "Invalid Lines: $invalid\n";
print "Total Checked: $total\n";
print "Working proxies saved to valid.txt\n";
This is a perl script, it can check for working socks proxies.
D:\Documents and Settings\Silver\Desktop\massPerlscanner\Perl\bin>perl checker.p
l Unique.txt
- 12.160.62.118:7212
- 12.180.54.219:1080
- 201.16.20.16:1080
[-] 69.253.216.130:18844
- 66.163.36.35:1080
- 80.67.125.195:1659
- 81.169.167.192:1080
- 196.15.211.91:6333
+ means alive!