Les fonctions dnsResolve et isInNet Problème

Nous avons un fichier Proxy.pac:

function FindProxyForURL(url, host) {
if (dnsResolve("ProxyServer") == "10.1.1.116")
if (dnsDomainLevels(host) == 0 ||
isInNet(host, "10.0.0.0","255.0.0.0") ||
isInNet(host, "125.0.0.0","255.0.0.0") ||
isInNet(host, "127.0.0.0","255.0.0.0") ||
isInNet(host, "204.223.70.250","255.255.255.255") ||
dnsDomainIs(host, ".muj.com") ||
dnsDomainIs(host, "sv.com.gt") ||
dnsDomainIs(host, "com.es.gt"))
return "DIRECT";
else return "PROXY 10.1.1.116:8080";

else return "DIRECT";
}

Cela fonctionne correctement, mais de nombreux utilisateurs se plaignent de la navigation car le déploiement proxy.pac Il faut trop de temps. Ressemble à ça

dnsResolve

et

isInNet

sont la cause du problème. Y a-t-il un autre moyen d'améliorer ce script? Ou comment accélérer la résolution du DNS?
Invité:

Alice

Confirmation de:

Vous avez plusieurs serveurs proxy dans votre organisation et ce fichier .pac doit être spécifique au serveur avec l'adresse 10.1.1.116? Sinon, vous pouvez probablement simplement vous débarrasser de ce chèque. dans la mesure où

FindProxyForURL()

appelé à chaque demande que votre navigateur doit faire

dnsResolve()

potentiellement peut bloquer votre navigateur pendant assez longtemps en fonction de votre fonctionnement de votre travail DNS.

Si tu en as besoin

dnsResolve()

Appelez alors un moyen de se déplacer, c'est de le déplacer au-delà

FindProxyForURL()

:

var myProxyServerIP = dnsResolve("ProxyServer");

function FindProxyForURL(url, host) {
if (myProxyServerIP == "10.1.1.116")
if (dnsDomainLevels(host) == 0 ||
isInNet(host, "10.0.0.0","255.0.0.0") ||
isInNet(host, "125.0.0.0","255.0.0.0") ||
isInNet(host, "127.0.0.0","255.0.0.0") ||
isInNet(host, "204.223.70.250","255.255.255.255") ||
dnsDomainIs(host, ".muj.com") ||
dnsDomainIs(host, "sv.com.gt") ||
dnsDomainIs(host, "com.es.gt"))
return "DIRECT";
else return "PROXY 10.1.1.116:8080";

else return "DIRECT";
}

Ce changement va le rendre afin que

dnsResolve()

Appelé uniquement lorsque vous téléchargez un fichier .pac, Et pas avec chaque demande au navigateur. Vous devrez déterminer pour vous-même s'il est possible de le faire dans son environnement, en fonction de la fréquentation de cette adresse. Mais encore une fois, l'adresse de votre serveur proxy devrait être statique.

Si les sous-réseaux sont vérifiés avec

isInNet()

Provoque une carte de domaine uniforme que vous vérifiez en utilisant

dnsDomainIs()

Appels? Si tel est le cas, vous avez une redondance et vous pouvez supprimer un ensemble d'appels.

De plus, je ne vois rien d'autre qu'il serait possible de recommander, basé sur ce que je peux discerner de votre environnement de votre question.

Agathe

Confirmation de:

Pour chaque appel de fonction isInNet Recherche B. DNS, Si l'hôte n'est pas une adresse IP. Cela ralentira le processus, comme vous devez le faire 4 DNS recherche et attendez une réponse du serveur DNS. Vous pouvez effectuer ce qui suit pour réduire le nombre d'appels DNS en un.

 function FindProxyForURL(url, host) {
if (dnsResolve("ProxyServer") == "10.1.1.116")

hostip=dnsResolve(host);

if (dnsDomainLevels(host) == 0 ||
isInNet(hostip, "10.0.0.0","255.0.0.0") ||
isInNet(hostip, "125.0.0.0","255.0.0.0") ||
isInNet(hostip, "127.0.0.0","255.0.0.0") ||
isInNet(hostip, "204.223.70.250","255.255.255.255") ||
dnsDomainIs(host, ".muj.com") ||
dnsDomainIs(host, "sv.com.gt") ||
dnsDomainIs(host, "com.es.gt"))
return "DIRECT";
else return "PROXY 10.1.1.116:8080";

else return "DIRECT";
}

Pour répondre aux questions, connectez-vous ou registre