Windows WinINet (desktop apps, .NET, Java)
Used by: apps using WinINet, .NET Framework, .NET, Java.
Helper library
Emulated helper library (CC0-1.0).
Version ranges and quirks
Windows 11 WinINet
| Behaviour | Value | Source |
|---|---|---|
| alert() output | ignored | lab, verified 2026-10-11 |
| Non-ASCII result rejected | false | lab, verified 2026-10-11 |
| shExpMatch is case-sensitive | true | lab, verified 2026-10-11 |
| dnsResolve is IPv4 only | true | lab, verified 2026-10-11 |
| JavaScript level accepted | 2017 | lab, verified 2026-10-11 |
| Calls FindProxyForURLEx if defined | true | lab, verified 2026-10-11 |
| Microsoft *Ex functions | true | lab, verified 2026-10-11 |
| Global variables persist between calls | true | lab, verified 2026-10-11 |
| IPv6 host passed in brackets | true | lab, verified 2026-10-11 |
| Host lower-cased by the engine | true | lab, verified 2026-10-11 |
| Largest PAC file accepted (bytes) | 1048576 | lab, verified 2026-10-11 |
| Functions built into the engine (native) | isPlainHostName, dnsDomainIs, localHostOrDomainIs, isResolvable, isInNet, dnsResolve, myIpAddress, dnsDomainLevels, shExpMatch, weekdayRange, dateRange, timeRange, alert, isResolvableEx, isInNetEx, dnsResolveEx, myIpAddressEx, sortIpAddressList, getClientVersion | lab, verified 2026-10-11 |
| On exception | error | lab, verified 2026-10-11 |
| On non-string / undefined result | stringify | lab, verified 2026-10-11 |
| How the returned string is read | windows | lab, verified 2026-10-11 |
| Proxy keywords understood | PROXY, HTTPS, SOCKS, DIRECT | lab, verified 2026-10-11 |
| URL passed to FindProxyForURL | https_to_origin | lab, verified 2026-10-11 |
Function availability
| Function | chromium | chromium | firefox | pacparser | pacparser | winhttp | wininet | reference |
|---|---|---|---|---|---|---|---|---|
isPlainHostName | yes | yes | yes | yes | yes | yes | yes | yes |
dnsDomainIs | yes | yes | yes | yes | yes | yes | yes | yes |
localHostOrDomainIs | yes | yes | yes | yes | yes | yes | yes | yes |
isResolvable | yes | yes | yes | yes | yes | yes | yes | yes |
isInNet | yes | yes | yes | yes | yes | yes | yes | yes |
dnsResolve | yes | yes | yes | yes | yes | yes | yes | yes |
myIpAddress | yes | yes | yes | yes | yes | yes | yes | yes |
dnsDomainLevels | yes | yes | yes | yes | yes | yes | yes | yes |
shExpMatch | yes | yes | yes | yes | yes | yes | yes | yes |
weekdayRange | yes | yes | yes | yes | yes | yes | yes | yes |
dateRange | yes | yes | yes | yes | yes | yes | yes | yes |
timeRange | yes | yes | yes | yes | yes | yes | yes | yes |
alert | yes | yes | yes | no | yes | yes | yes | yes |
dnsResolveEx | yes | yes | no | yes | yes | yes | yes | no |
myIpAddressEx | yes | yes | no | yes | yes | yes | yes | no |
isResolvableEx | yes | yes | no | yes | yes | yes | yes | no |
isInNetEx | yes | yes | no | yes | yes | yes | yes | no |
sortIpAddressList | yes | yes | no | no | no | yes | yes | no |
Rules with notes for wininet
- PAC-C001Hostname pattern applied to url instead of host
WinINet and .NET programs passed http URLs with the path; Java and some Windows system components passed http URLs without it. lab, verified 2026-10-11
- PAC-C018Upper-case letters in a hostname pattern
Programs using WinINet, .NET Framework, .NET 8 and Java passed the host lower-cased. lab, verified 2026-10-11
- PAC-K009Case-sensitive host comparisons without lower-casing host
Programs using WinINet, .NET Framework, .NET 8 and Java passed the host lower-cased. lab, verified 2026-10-11
- PAC-K020JavaScript syntax newer than ES2017 (?., ??, object spread)
Same script engine as Windows (WinHTTP); the same syntax fails to load. lab, verified 2026-10-11