HTTP::ProxyAutoConfig - provides a unifed way to get the proxy information
HTTP::ProxyAutoConfig is a module that allows perl scripts that need access to proxy servers to utilize the standard proxy settings provided by an IT department.
This module provides a consistent method for finding the proxy server needed to talk to for a given URL. It can handle parsing the http_proxy, https_proxy, ftp_proxy, and http_auto_proxy variables to determine what it is you want it to do. If you set the http_auto_proxy variable it overrides the others and fetches the PAC file from there and uses those settings.
Access to the proxy information is provided in a single function call to FindProxyForURL(url,host). A string is returned that tells you what to do, either "DIRECT", "PROXY host:port", or "SOCKS host:port".
The Proxy Auto Config format and rules are defined at Netscape:
new(url) - creates the FindProxyForURL function and the object. The url argument is optional, and points to the auto-proxy file provided on your network. If you do not specify a url, then it will check the http_auto_proxy variable, followed by the http_proxy, https_proxy, and ftp_proxy variables. my $pac = new HTTP::ProxyAutoConfig("http://foo.bar/auto-proxy.pac"); my $pac = new HTTP::ProxyAutoConfig(); FindProxyForURL(url,host) - takes the url, and the host (minus port) from the URL, and determines the action you should take to contact that host. It returns one of three things: DIRECT - connect directly to them PROXY host:port - connect via the proxy SOCKS host:port - connect via SOCKS FindProxy(url) - calls the FindProxyForURL function and passes it the correct options. This is just a wrapper. Reload() - allows you to fetch the PAC again and regenerate the FindProxyForURL function based on anything you might have changed in the environment.
By Ryan Eatmon in May of 2001
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.