71

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

0

4 Answers 4

53

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.

5
  • 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, 2009 at 23:22
  • Are you sure that's the link? What's wpad's top level domain? Oct 10, 2009 at 8:38
  • Oh... I see. I should use wpad in my local domain Oct 11, 2009 at 6:20
  • 1
    This doesn't work for all networks. Sometimes proxy is autodetected over dhcp (inform verb) rather than http wpad. Jul 1, 2013 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... Nov 6, 2015 at 8:19
47

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

3
  • Nice workaround :)
    – hoang
    Jun 10, 2013 at 13:23
  • Great indeed...
    – majkinetor
    Dec 16, 2015 at 22:30
  • Updated for 2020, see newer answer below here
    – wistlo
    Jul 17, 2020 at 14:52
17

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
  • 2
    Apparently this no longer works? Chrome does not display any useful information on that page. version 75 Jul 17, 2019 at 17:05
  • 1
    opens but does not display gui May 4, 2020 at 14:56
1

netstat technique in earlier answer is updated for Powershell Version 5.1.17763.1007 (Windows 10):

netstat -an | find --% "EST"

The --%is new for Powershell 3.0 and newer, the "verbatim arguments" parameter using the Stop Parsing symbol. Details on Find Error here.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .