A .pac file is just ECMAscript - it's JavaScript. Check out the Wikipedia article on file format.
If you copy the PAC code, you can process it to see which proxy is used based on the destination URL. If you like, you can put the script in a web page (locally) to create a tool for local evaluation.
Edit:
As an alternative to the method that I started recommending, you can check out PACTester , available on Google Code. This will allow you to quickly test a range of options.
If you have .Net available and want to play with C #, you can check out this article on MSDN, which has code that you can use as described above.
To extend the original method described above, there are a number of functions that can (and usually) are provided by the host browser. The main function to be implemented in the pac file is FindProxyForUrl() . This takes two parameters: URL and host (host derived from the name of the URL). The "provided" functions include: isInNet() , localHostOrDomainIs() , isPlainHostName() , isResolvable() , etc.
If you are working in a Microsoft environment, you can check this page in Technet, which describes the .pac format with some useful examples.
According to Microsoft documentation for isInNet() :
The isInNet(host, pattern, mask) function returns TRUE if the host IP address matches the specified pattern . mask indicates which part of the IP address should match (255 = match, 0 = ignore).
If you want technical information, here is the Mozilla source code for implementing services related to automatic proxy configuration. It defines the JS code for isInNet() as:
200 function isInNet(ipaddr, pattern, maskstr) { 201 var test = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/(ipaddr); 202 if (test == null) { 203 ipaddr = dnsResolve(ipaddr); 204 if (ipaddr == null) 205 return false; 206 } else if (test[1] > 255 || test[2] > 255 || 207 test[3] > 255 || test[4] > 255) { 208 return false;
Hope this helps!