Discussion:
.pac lesen - automatische Proxy-Config
(zu alt für eine Antwort)
Enrico Tröger
2005-01-14 01:58:38 UTC
Permalink
Hallo Leute,

ich hab jetzt recht lange gegoogelt nach einer Lösung halbwegs vernünftig
eine .pac-Datei zu lesen, in der Angaben zu Proxy-Einstellungen stehen.
Um halt eine automatische Konfiguration der Proxy-Settings in Java zu
realisieren.
Aber alles was ich gefunden habe, waren unbeantwortete Postings wie meines,
oder Verweise auf Rhino. Dieses fällt aber für mich aus, das das in der
kleinsten Variante schon über 500KB hat, mein Programm an sich aber nur
300KB.

Daher, hat jemand sich mal mittlerweile damit beschäftigt, ansonsten werd
ich mir wohl einen kleinen Parser dafür schreiben, der wenigstens versucht
aus einer .pac-File die Daten herauszuholen.


Gruß
Enrico
--
Das Wissen der Menschheit gehoert der Welt.
Nico Seessle
2005-01-14 08:12:35 UTC
Permalink
Post by Enrico Tröger
Aber alles was ich gefunden habe, waren unbeantwortete Postings wie meines,
oder Verweise auf Rhino.
Würde ich jetzt auch naheliegend finden (oder natürlich einen anderen
JS-Interpreter in Java, falls es da noch Alternativen gibt). Meines
Wissens sind doch in solch einem .pac-File ziemlich viele JS-Konstrukte
zulässig, oder?
Post by Enrico Tröger
Daher, hat jemand sich mal mittlerweile damit beschäftigt, ansonsten werd
ich mir wohl einen kleinen Parser dafür schreiben, der wenigstens versucht
aus einer .pac-File die Daten herauszuholen.
Deshalb wüsste ich nicht, wie du ohne Auswertung des JS da jetzt "die
Daten" herausholen willst. Du müsstest ja zumindestens die naheliegenden
JS-Funktionen (String-Operationen) irgendwie interpretieren, oder
einfach nur durchtbar einfache .pac-Files verarbeiten.

Nico
Enrico Tröger
2005-01-14 15:18:55 UTC
Permalink
Post by Nico Seessle
Post by Enrico Tröger
Daher, hat jemand sich mal mittlerweile damit beschäftigt, ansonsten werd
ich mir wohl einen kleinen Parser dafür schreiben, der wenigstens
versucht aus einer .pac-File die Daten herauszuholen.
Deshalb wüsste ich nicht, wie du ohne Auswertung des JS da jetzt "die
Daten" herausholen willst. Du müsstest ja zumindestens die naheliegenden
JS-Funktionen (String-Operationen) irgendwie interpretieren, oder
einfach nur durchtbar einfache .pac-Files verarbeiten.
Also ich kenn mich nich so direkt mit den .pacs aus, aber habe bisher 2-3
gesehen, und die waren recht einfach, sodass man die Proxy-Adresse
herausparsen könnte. Und wenn es nicht geht, dann muss der User halt doch
mal sich bemühen die Einstellungen selbst zu suchen, und dann einzutragen.


Gruß
Enrico
--
Der Link - Counter
http://lc.emgame.de
Nico Seessle
2005-01-14 19:08:36 UTC
Permalink
Post by Enrico Tröger
Also ich kenn mich nich so direkt mit den .pacs aus, aber habe bisher 2-3
gesehen, und die waren recht einfach, sodass man die Proxy-Adresse
herausparsen könnte.
Ich kenne in erster Linie nur die Beispiele von
http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html.

Und da ist selbst eines der einfachen:

function FindProxyForURL(url, host)
{
if (isResolvable(host))
return "DIRECT";
else
return "PROXY proxy.mydomain.com:8080";
}

nicht in der Form, das man das "einfach rauslesen" kann (zumindestens
nicht, wenn man es "richtig" machen wollte, da du ja noch isResolvable
implementieren müsstest um den Proxy eben nur dann zu verwenden, wenn es
auch der Browser tun würde).

Wenn du natürlich weisst, das es in deinem Programm nur um externe
Resourcen geht, und das dann immer der Proxy verwendet werden soll, dann
ist der Ansatz "suchen nach 'PROXY' und das was danach steht verwenden"
wohl der einfachste.

Nico
Enrico Tröger
2005-01-15 12:14:38 UTC
Permalink
Post by Nico Seessle
Post by Enrico Tröger
Also ich kenn mich nich so direkt mit den .pacs aus, aber habe bisher 2-3
gesehen, und die waren recht einfach, sodass man die Proxy-Adresse
herausparsen könnte.
Ich kenne in erster Linie nur die Beispiele von
http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html.
function FindProxyForURL(url, host)
{
if (isResolvable(host))
return "DIRECT";
else
return "PROXY proxy.mydomain.com:8080";
}
nicht in der Form, das man das "einfach rauslesen" kann (zumindestens
nicht, wenn man es "richtig" machen wollte, da du ja noch isResolvable
implementieren müsstest um den Proxy eben nur dann zu verwenden, wenn es
auch der Browser tun würde).
Wenn du natürlich weisst, das es in deinem Programm nur um externe
Resourcen geht, und das dann immer der Proxy verwendet werden soll, dann
ist der Ansatz "suchen nach 'PROXY' und das was danach steht verwenden"
wohl der einfachste.
Eben das war mein Gedanke, weil mein Programm nur zu einer festen Adresse
eine Verbindung aufnimmt, und die ist hal extern, daher sollte das reichen.
Ich werde das so basteln, dass versucht wird, es auszulesen, und wenns nich
geht, muss halt der User selbst Hand anlegen.

Gruß
Enrico

Loading...