How to view Internet Explorer auto-detected proxy settings?

69

36

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

Aidan Ryan

Posted 2009-09-01T12:18:18.683

Reputation: 1 415

Answers

52

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.

Polsy

Posted 2009-09-01T12:18:18.683

Reputation: 1 114

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 – 2015-11-06T08:19:05.087

1

Ah, excellent. Here is more detail on the Web Proxy AutoDiscovery protocol: http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol

– Aidan Ryan – 2009-09-01T23:22:11.990

Are you sure that's the link? What's wpad's top level domain? – Nathan Fellman – 2009-10-10T08:38:53.743

Oh... I see. I should use wpad in my local domain – Nathan Fellman – 2009-10-11T06:20:14.117

1This doesn't work for all networks. Sometimes proxy is autodetected over dhcp (inform verb) rather than http wpad. – Colonel Panic – 2013-07-01T12:58:25.093

46

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).

Royce Williams

Posted 2009-09-01T12:18:18.683

Reputation: 975

Great indeed... – majkinetor – 2015-12-16T22:30:11.347

Nice workaround :) – hoang – 2013-06-10T13:23:59.840

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

SharpC

Posted 2009-09-01T12:18:18.683

Reputation: 405

2Apparently this no longer works? Chrome does not display any useful information on that page. version 75 – UuDdLrLrSs – 2019-07-17T17:05:18.337

1@DaveInCaz thanks, I've added a workaround! – SharpC – 2019-07-22T10:51:05.857

good idea, thanks. – UuDdLrLrSs – 2019-07-22T11:40:54.983