PV100 Bookreader
         PV100 UnPsw
         DSS Models
Home » Projects » Windows » ProxyGrepper »



25024 bytes


This program is free software provided on "AS IS" basis, details see below in the License section.

There is a huge bunch of free proxy servers on the Internet. There is a large number of sites which collect server addresses and publish them on their pages. Sometimes we need to use proxies to test how does site works with IP other than your ISP's. Sometimes we need to defend our sites from such IPs. In that case, you need not just large collection of address, but a huge one. Of course this is impossible to collect all free proxies, but it is possible to collect many of them. To do this you need to visit all the sites with proxies and collect info from their pages. This task can be simplified if you will use some kind of web copier and proxy filter. ProxyGrepper is a latter one.

This program gets as input a directory or a file name to parse and output file name. Although program name contains the word "grep" it has nothing to do with regular expressions. When it was started I thought to use regular expression library, but library was too slow. So I've implemented ProxyGrepper using other technologies, such as inverted arrays, finite state automaton and binary trees.

ProxyGrepper is a fastest ever known proxy filter. I've put best technologies I know. The processing speed on AMD K6-2-450 is 2 MB/s.


Latest researches on the net shows that there are new programs called proxy hunters. These programs are hybrids of browser and proxy filter.


It works fine only when there is enough free memory. 100000 of mixed type addresses took about 30 MB of RAM. In case there isn't enough memory it begins to work very slowly.

If "kill duplicates" switch is on, then proxies are sorted very strangely. If you need to have them arranged it use some kind of sort command.

Command Line Parameters

ProxyGrepper's command line duplicate almost all controls shown on the main dialog. It does not has a switch to show about window. So if you need it, click system menu or click to copyright string.

Any switch may present in command line only once. If it is specified more than once last specified switch is used.

So, the program has next parameters format:

[/k[+|-]] [/l[+|-]] [/c[+|-]]
[/g[+|-]] [/q[+|-]]


folder or file to parse;


if pointing to existing folder, then results will be outputted to a set of files named as 1st level files and folders in StartFrom else data will be outputed into one file with specified name.

/i works on proxies given as IP Address

/i+ specifies a following ranges as list of only allowed /i- specifies a following ranges as blacklist Sample: "192.168.*.*" Partials are not allowed: 192.168.1*.* Separators: ',' (commad), ';' (semicolon), ' ' (space)

/n works on proxies given as DNS-names

/n+ specifies a following names as list of only allowed
/n- specifies a following names as blacklist

Sample: ".net,.ru , .com*" asterisk is allowed as last symbol only! asterisk is not allowed in the middle or start symbol! Separators: ',' (commad), ';' (semicolon), ' ' (space) (in this sample, domains finished with .net or .ru or containing substring .com anywhere will be included or filtered)

/p makes filtering on proxies by port numbers

/p+ specifies a following ports as list of only allowed
/p- specifies a following ports as blacklist

Sample: "1080;8080-8083,80 83" minus sign is used as range specifier. Do not allow separators around range specifier Separators: ',' (commad), ';' (semicolon), ' ' (space)


convert to lower case (very useful, and better have this switch specified)


Kill duplications


Do not empty "already was" filter when switch to a new output file.


Start immediately


Quit. Useful only with /g. If /g is not specified, then quits immediately after start.


This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.

You found this project useful? Give me to know, vote for it! Make a donation.

Last modified: 22:53 06.09.2014
Copyright © design, development, coding & content 2004 Boris L. Zanin
http://bzanin.tk/ | http://jump.to/bzanin | http://here.is/bzanin