69

When Internet Explorer is set to auto-detect proxy settings, is there a way to view what it detects?

51

The settings are retrieved from http://wpad/wpad.dat which is a javascript file describing which proxy server should be used in which situation. Your best bet is to open that URL and figure the proxy out from the contents it returns.

  • 1
    Ah, excellent. Here is more detail on the Web Proxy AutoDiscovery protocol: en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol – Aidan Ryan Sep 1 '09 at 23:22
  • Are you sure that's the link? What's wpad's top level domain? – Nathan Fellman Oct 10 '09 at 8:38
  • Oh... I see. I should use wpad in my local domain – Nathan Fellman Oct 11 '09 at 6:20
  • 1
    This doesn't work for all networks. Sometimes proxy is autodetected over dhcp (inform verb) rather than http wpad. – Colonel Panic Jul 1 '13 at 12:58
  • As mentioned elsewhere, the actual proxy can be found in lines with PROXY - in my case I had to track back an array's generation function, though... – Tobias Kienzler Nov 6 '15 at 8:19
45

If http://wpad/wpad.dat is not available, you can deduce which proxies are in use by browsing to a web site and then checking the TCP connection that was made. It's not great, but it's at least minimally useful.

  1. Inspect the output of netstat -an | find "EST" (short for 'ESTABLISHED').
  2. Go to a fresh site (one that you have not recently visited).
  3. Run the netstat command again, looking for the new connection. It might look like:

    TCP 192.168.1.1:1989 192.168.1.88:8080 ESTABLISHED

In this example, your proxy's IP is 192.168.1.88 and it is listening on port 8080.

Note that this method only shows the proxy currently in use for that connection. If more than one proxy is configured in your environment, and you want to know all of them, you may need to repeat the procedure above periodically to get the full list.

The same procedure can be used on non-Windows boxes (using netstat -an | grep EST, or whatever your OS uses to show active connections).

  • Nice workaround :) – hoang Jun 10 '13 at 13:23
  • Great indeed... – majkinetor Dec 16 '15 at 22:30
18

I tried both solutions mentioned, and also all sorts of others.

In the end what worked for me was using Chrome to navigate to:

chrome://net-internals/#proxy

which gave me the .pac file (= proxy auto-config file) which I could then download and read to determine the proxy that was being selected.

=== Addenda ===

As pointed out by @DaveInCaz and @ZachBloomquist, this no longer works as of Chrome 71.

So what I did was:

  1. Find the previous version of Chrome, which gives 70.0.3538.
  2. Look this up on https://omahaproxy.appspot.com, which gives version 587811.
  3. Find that version of Chromium on the snapshots page. The version seemed to be present on the Windows 64 bit version page, which leads me to the 587811 version page with the file chrome-win32.zip.
  4. Download, unzip, run chrome.exe and you can again use the address chrome://net-internals/#proxy to find the PAC script!

So to summarize the steps required:

  1. Download Chromium version 70.0.3538 = build 587811 here (Windows, otherwise see above steps).
  2. Unzip and run chrome.exe
  3. Navigate to chrome://net-internals/#proxy
  • 2
    Apparently this no longer works? Chrome does not display any useful information on that page. version 75 – UuDdLrLrSs Jul 17 '19 at 17:05
  • 1
    @DaveInCaz thanks, I've added a workaround! – SharpC Jul 22 '19 at 10:51
  • good idea, thanks. – UuDdLrLrSs Jul 22 '19 at 11:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.