When Internet Explorer is set to auto-detect proxy settings, is there a way to view what it detects?
4 Answers
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.
-
1Ah, excellent. Here is more detail on the Web Proxy AutoDiscovery protocol: en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol Sep 1, 2009 at 23:22
-
-
-
1This 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
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.
Inspect the output of
netstat -an | find "EST"
(short for 'ESTABLISHED
').Go to a fresh site (one that you have not recently visited).
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).
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:
- Find the previous version of Chrome, which gives 70.0.3538.
- Look this up on https://omahaproxy.appspot.com, which gives version 587811.
- 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
. - Download, unzip, run
chrome.exe
and you can again use the addresschrome://net-internals/#proxy
to find the PAC script!
So to summarize the steps required:
- Download Chromium version 70.0.3538 = build 587811 here (Windows, otherwise see above steps).
- Unzip and run
chrome.exe
- Navigate to
chrome://net-internals/#proxy
-
2Apparently this no longer works? Chrome does not display any useful information on that page. version 75 Jul 17, 2019 at 17:05
-
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.