Toon posts:

Aanpassen huidige proxy.pac

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heren,

Ik hoop dat iemand me verder kan helpen.
Wij maken gebruik van een proxy.pac script in Internet Explorer echter loopt localhost (oftewel 127.0.0.1) nu via onze proxy. Kan iemand me vertellen waar ik mijn localhost moet plaatsen in onderstaand script zodat deze ook DIRECT gaat.

function FindProxyForURL(url, host)
{ if (isInNet(host, "10.0.0.0", "255.255.0.0", "127.0.0.1"))
{return "DIRECT";
}
return "PROXY isa.domein.local:8080; PROXY isauitwijk.domein.local:8080; DIRECT";
}

In bovenstaande doet de localhost het WEL maar al het overige internet niet meer.
Als ik 127.0.0.1 weer weg haal doet localhost het niet meer maar al het overige internet WEL.
Ik heb het idee dat ik een nieuwe "if (isInNet(host," bij moet maken...

  • Squ1zZy
  • Registratie: April 2011
  • Niet online
Je kan het vinkje toch aanzetten bij "Bypass proxy for local addresses"?

Ik zie ook geen else in je if statement. Probeer eens:

code:
1
2
3
4
5
function FindProxyForURL(url, host) {
  if (isInNet(host, "10.0.0.0", "255.255.0.0", "127.0.0.1")) {
    return "DIRECT"; }
  else {
    return "PROXY isa.domein.local:8080; PROXY isauitwijk.domein.local:8080; DIRECT"; } }

  • mbaltus
  • Registratie: Augustus 2004
  • Laatst online: 23-02 14:53
De functie isInNet ondersteund toch maar drie argumenten? daar kun je volgens mij niet 127.0.0.1 op die manier aan toevoegen.

The trouble with doing something right the first time is that nobody appreciates how difficult it is


Verwijderd

Topicstarter
mbaltus schreef op donderdag 01 september 2011 @ 22:59:
De functie isInNet ondersteund toch maar drie argumenten? daar kun je volgens mij niet 127.0.0.1 op die manier aan toevoegen.
Dat is inderdaad ook hetgene wat fout gaat.
127.0.0.1 hoort daar niet te staan, maar waar wel ?
Die 127.0.0.1 heb ik daar zelf toegevoegd maar daarmee verknal ik mijn script
Squ1zZy schreef op donderdag 01 september 2011 @ 15:44:
Je kan het vinkje toch aanzetten bij "Bypass proxy for local addresses"?
Die kun je alleen toepassen als je je proxy handmatig onderin het venster invult. Als je een proxy.pac gebruikt blijft die optie GRIJS.

  • mbaltus
  • Registratie: Augustus 2004
  • Laatst online: 23-02 14:53
Ik verwacht dat je een denkfout maakt.
De isInNet functie wordt gebruikt om te bepalen of de opgevraagde host ("host") in een bepaalt netwerk zit (je bedrijfsnetwerk). Als dat zo is, dan wil je dat er gebruik wordt gemaakt van een proxy server (of niet).

Als je additioneel wilt testen of de opgevraagde pagina op host 127.0.0.1 ligt, dan zul je iets moeten doen als

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function FindProxyForURL(url, host) {

// Intern IP adres, direct.

    var resolved_ip = dnsResolve(host);

    if (isInNet(resolved_ip, "10.0.0.0", "255.255.0.0")  ||
        isInNet(resolved_ip, "127.0.0.0", "255.255.255.0"))
        return "DIRECT";

// alle andere gevallen, gebruik proxy
     return "PROXY isa.domein.local:8080; PROXY isauitwijk.domein.local:8080; DIRECT"; 
 
}

The trouble with doing something right the first time is that nobody appreciates how difficult it is


Verwijderd

Topicstarter
Wat ik dus zoek is een kleine aanpassing aan mijn huidige proxy.pac zodat de url http://127.0.0.1 direct wordt doorgelaten en niet via de proxy loopt... (dus niet 127.0.0.1 als interface IP)

  • FacQ
  • Registratie: December 2004
  • Laatst online: 17-02 18:55
Zoals als gezegd hierboven, gebruik je inderdaad de IsInNet() functie verkeerd.
Deze aanpassing zou moeten werken:

code:
1
2
3
4
5
6
7
8
9
function FindProxyForURL(url, host) 
{ 
if (isInNet(host, "10.0.0.0", "255.255.0.0"))
return "DIRECT";
else if (isInNet(host, "127.0.0.1", "255.255.255.255"))
return "DIRECT";
else
return "PROXY isa.domein.local:8080; PROXY isauitwijk.domein.local:8080; DIRECT"; 
}

18 sekúndur fyrir sólarupprás


Verwijderd

Topicstarter
Moet 127.0.0.1 ook achter isInNet(host staan als 127.0.0.1 niet het ip is van mijn LAN.
Ik wil surfen naar 127.0.0.1 he. Zoals ik je aanpassing nu lees gaat hij kijken of mijn eigen IP in range 10.0.0.0 of 127.0.0.1 zit en vervolgens zonder proxy naar buiten gaat.

Ik wil dat hij kijkt of mijn IP in range 10.0.0.0 zit en dat hij dan direct gaat (dit klopt nu)...
en dat als ik naar 127.0.0.1 surf ik geen proxyserver toegewezen krijg (klopt volgens mij in het geval van FacQ nu niet aangezien hij isInNet (host gebruikt.
In alle andere gevallen wel de proxy gebruiken.

PS: Ik heb nu iets gevonden op internet en daarin wordt onderstaande gebruikt om exclusions op te geven:

function FindProxyForURL(url, host) {
if (shExpMatch(url, "localhost") ||
shExpMatch(url, "127.0.0.1"))

Als ik dit toevoeg lijkt het te werken. Ik kan dan buiten de proxy om naar localhost surfen.
Alleen als ik ditzelfde doe voor webmail.domein.nl/owa dan werkt het weer niet.

  • FacQ
  • Registratie: December 2004
  • Laatst online: 17-02 18:55
Ik denk dat je het script verkeerd begrijpt.
De host adressen die je specificeert, zijn de adressen waarmee je wilt verbinden en dus niet het ip adres van je lokale machine.

Oftewel in het script dat ik geplaatst heb zullen alle verbindingen die je maakt naar apparaten met ip adres 10.0.x.x en 127.0.0.1 niet via de proxy server gaan. (ik ging er van uit dat dit de bedoeling was, gezien je originele script)

Wat ik nu uit je verhaal begrijp is dat je regels wilt maken op basis van je lokale ip adres, mag ik vragen waarom? Gaat het hier om een laptop die op verschillende lokaties gebruikt wordt?

18 sekúndur fyrir sólarupprás


Verwijderd

Topicstarter
Ah ik snap hem, en kan ik hetzelfde doen met een website zoals http://webmail.domein.nl/owa ? Dat moet ook een exclusion worden. Welke regel wordt daarvoor gebruikt ?

Als ik (host, "127.0.0.1", "255.255.255.255")) verander in (host, "webmail.domein.nl")) werkt het niet.

De 127.0.0.1 werk nu BTW !!!

  • FacQ
  • Registratie: December 2004
  • Laatst online: 17-02 18:55
Dat zou moeten werken met shExpMatch()

In jouw geval dus:
code:
1
2
3
4
5
6
7
8
9
10
11
function FindProxyForURL(url, host)
{
if (isInNet(myIpAddress(), "10.0.0.0", "255.255.0.0"))
return "DIRECT";
if (shExpMatch(url, "http://127.0.0.1*"))
return "DIRECT";
if (shExpMatch(url, "https://webmail.domein.nl*"))
return "DIRECT";
else
return "PROXY isa.domein.local:8080; PROXY isauitwijk.domein.local:8080; DIRECT";
}


Regel 3 veranderd, zodat nu jouw lokale ip gebruikt wordt en niet van de remote host, wat volgens mij de bedoeling was.
Regel 7 en 8 zouden moeten werken voor jouw webmail (ik ga ervanuit dat het een https verbinding is). Vergeet niet de wildcard aan het einde.

18 sekúndur fyrir sólarupprás


Verwijderd

Topicstarter
FacQ schreef op woensdag 07 september 2011 @ 15:59:
Dat zou moeten werken met shExpMatch()

In jouw geval dus:
code:
1
2
3
4
5
6
7
8
9
10
11
function FindProxyForURL(url, host)
{
if (isInNet(myIpAddress(), "10.0.0.0", "255.255.0.0"))
return "DIRECT";
if (shExpMatch(url, "http://127.0.0.1*"))
return "DIRECT";
if (shExpMatch(url, "https://webmail.domein.nl*"))
return "DIRECT";
else
return "PROXY isa.domein.local:8080; PROXY isauitwijk.domein.local:8080; DIRECT";
}


Regel 3 veranderd, zodat nu jouw lokale ip gebruikt wordt en niet van de remote host, wat volgens mij de bedoeling was.
Regel 7 en 8 zouden moeten werken voor jouw webmail (ik ga ervanuit dat het een https verbinding is). Vergeet niet de wildcard aan het einde.
Nope helaas werkt het nog niet helemaal. Localhost doet het nu wel goed.
Ik heb nu:

function FindProxyForURL(url, host) {
if (isInNet(myIpAddress, "10.0.0.0", "255.255.0.0") ||
return "DIRECT";
if (shExpMatch(url, "http://127.0.0.1*"))
return "DIRECT";
if (shExpMatch(url, "http://webmail.domein.nl*"))
return "DIRECT";
if (shExpMatch(url, "https://webmail.domein.nl*"))
return "DIRECT";
if (shExpMatch(url, "*.domein.local"))
return "DIRECT";
else
return "PROXY isa.domein.local:8080; PROXY isauitwijk.domein.local:8080; DIRECT";
}

Webmail kan nog steeds niet benaderd worden. Als ik de proxy.pac uitschakel en de webmail exclusion handmatig maak in de Internet Explorer opties werkt het wel.

  • mbaltus
  • Registratie: Augustus 2004
  • Laatst online: 23-02 14:53
Er zitten een aantal fouten in je script.
In de eerste plaats is "myIpAddress" een functie en moeten er "()" achter. Daarnaast zet je een OF operator (||) die je vervolgens niet gebruik en sluit je niet af met een haakje. Mijn inschatting is dat je hele script eigenlijk niet werkt en dat het daardoor ook niet goed gaat.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function FindProxyForURL(url, host) { 
if (isInNet(myIpAddress(), "172.16.0.0", "255.255.0.0")
 return "DIRECT"; 
if (shExpMatch(url, "http://127.0.0.1*"))
 return "DIRECT"; 
if (shExpMatch(url, "http://webmail.domein.nl*"))
 return "DIRECT";
 if (shExpMatch(url, "https://webmail.domein.nl*"))
 return "DIRECT";
 if (shExpMatch(url, "*.domein.local"))
 return "DIRECT";
 else
 return "PROXY isa.domein.local:8080; PROXY isauitwijk.domein.local:8080; DIRECT"; 
}


Verder vul je in je productiescript natuurlijk wel de juiste domeinnaam in en laat je dit niet op "webmail.domein.nl" en "domein.local" staan, toch?

Overigens vraag ik me af of je het eerste statement ook wel echt wilt. Als je eigen IP in je netwerk-reeks zit, wordt de proxy niet gebruikt.

Volgens mij moet je script zijn:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
function FindProxyForURL(url, host) { 
if (shExpMatch(url, "http://127.0.0.1*"))
 return "DIRECT"; 
if (shExpMatch(url, "http://webmail.domein.nl*"))
 return "DIRECT";
 if (shExpMatch(url, "https://webmail.domein.nl*"))
 return "DIRECT";
 if (shExpMatch(url, "*.domein.local"))
 return "DIRECT";
 else
 return "PROXY isa.domein.local:8080; PROXY isauitwijk.domein.local:8080; DIRECT"; 
}

The trouble with doing something right the first time is that nobody appreciates how difficult it is

Pagina: 1