Wpad Chrome Firefox et isInNet(myIpAddress()

Petite article car j’ai été confronté a un soucis tout bête avec le wpad Chrome, Firefox et ie.

Je souhaitais utiliser un truc du genre :

if(isInNet(myIpAddress(), « 172.29.0.0 », « 255.255.0.0 »)) { return proxy_no; }
return proxy_yes;

En gros, si tu est dans le vlan 172.29.0.0 tu n’applique pas le proxy. Mais pour tout le reste oui

Cela fonctionne parfaitement avec ie et firefox mais pas avec chrome 🙁

J’ai donc contacté google pour savoir pourquoi cela ne fonctionnait pas avec eux. Il s’agit en faite d’un bug:  https://code.google.com/p/chromium/issues/detail?id=267101

L’issue est ouverte depuis longtemps mais n’est pas réparée.

Google m’a quand même donnée une solution, utiliser isInNetEx :

if(isInNetEx(myIpAddress(), « 172.29.0.0 », « 255.255.0.0 »)) { return proxy_no; }
return proxy_yes;

Super ! Maintenant ça fonctionne ! Bon par contre plus du tout avec Firefox …

ob_06116c_220-f-43166878-pf3admr4fspxhl3mi4x7fu7tkjooikqx

La seul solution que j’ai trouvé est d’empêcher que Firefox entre dans la boucle if(isInNetEx(myIpAddress() pour ne pas le faire planter et donc déclarer tous les cas possibles.

if(isInNet(myIpAddress(), « 172.28.0.0 », « 255.255.0.0 »)) { return proxy_yes; }
if(isInNet(myIpAddress(), « 172.29.0.0 », « 255.255.0.0 »)) { return proxy_no; }
if(isInNetEx(myIpAddress(), « 172.28.0.0 », « 255.255.0.0 »)) { return proxy_yes; }
if(isInNetEx(myIpAddress(), « 172.29.0.0 », « 255.255.0.0 »)) { return proxy_no; }

En gros il faut absolument que if(isInNet(myIpAddress() soit déclaré pour tous vos VLAN comme ceci, firefox s’arrêtera toujours a la première correspondance.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *