Proxy.pac myIpAddress() gibt lokale Adressen zurück, keine Ethernet-Adapter

Proxy.pac myIpAddress() gibt lokale Adressen zurück, keine Ethernet-Adapter

Dies ist sozusagen ein zweiter Teilvon hier.

Wenn Clients über VPN in mein Netzwerk einsteigen, wird ihnen eine IP-Adresse zugewiesen, die ihnen wiederum die Option 252 vom DHCP gibt. Die automatische Erkennung greift dann auf diese Datei zu

Was ich im Wesentlichen brauche, ist eine Möglichkeit, mit der proxy.pac herausfinden kann, ob ein Client eine VPN-Verbindung nutzt, damit es für ihn ein DIRECT auflösen kann.

Wenn ich also eine einfachevar meineIp = meineIP-Adresse()und dann muss es nur noch mit einer Liste dieser festen Adressen abgeglichen werden, dann wäre das Problem gelöst. Allerdings scheint die Funktion myIpAddress() die lokale IP des Rechners (z. B. 192.168.10.1) und nicht den Netzwerkadapter zu ermitteln. In meinem Fall ist diese lokale Adresse mein MS Loopback, das für einige meiner lokalen VMs benötigt wird. Wenn ich meinen Loopback-Adapter deaktiviere, beginnt er, die richtige Adresse aufzulösen. Dies ist kein idealer Workaround.

Wie löse ich also die gewünschte IP-Adresse vom richtigen Adapter auf?

  • Ich habe diese Tests bisher von meinem lokalen Computer aus durchgeführt.
  • Mir ist bewusst, dass es sich hierbei nicht um eine geschlossene VPN-Lösung handelt, sondern lediglich um das, was aktuell entschieden wurde.

Dank im Voraus...

Antwort1

Leider ist es nicht möglich, myIpAddress() in Windows dazu zu bringen, die richtige Adresse zurückzugeben.tutDies kann eine Änderung der Priorität der Netzwerkkarten erfordern (unter Windows XP befindet sich dies im Dialogfeld „Erweiterte Einstellungen ...“ des Menüs „Erweitert“ des Dialogfelds „Netzwerkverbindungen“).

Hier ist das Problem einer anderen Person, das Ihrem ähnelt:http://www.geurtsrus.com/gerke/2005/01/proxy-auto-configuration-blues.html

Möglicherweise ist es besser, die IP-Adressen zu ermitteln, die einen Proxy benötigen, und nicht die, bei denen dies nicht der Fall ist (z. B. lokale Subnetze im Unternehmen), und andernfalls von DIRECT auszugehen.

Eine andere Alternative wäre, den Clients im VPN eine andere PAC-DHCP-Option zu übergeben. Das ist möglicherweise einfach, wenn Ihre VPN-Benutzer aus einem dedizierten Subnetz kommen, aber möglicherweise nicht, wenn sie aus einem LAN-Subnetz kommen.

Antwort2

Es ist möglich, wpad.dat auf wpad.aspx umzuleiten und die IP-Adresse mit ASP zu finden:

<%
Dim strClientIP As String
strClientIP = Request.UserHostAddress()
%>

function FindProxyForURL(url, host)
{
    //proxy definition
    var UseProxy = "PROXY x.x.x.x:8080"

    if (isPlainHostName(host)) {return "DIRECT"; }

    if (isInNet("<%Response.Write(strClientIP)%>", "x.x.1.0", "255.255.255.0"))
        return UseProxy;
    else
        return "DIRECT";
}

Antwort3

Welchen Browser verwenden Sie? Mozilla-basierte Browser hatten damit Probleme, die sich jedoch nicht einfach lösen ließen, da der Funktionsaufruf ursprünglich unter der Annahme definiert wurde, dass ein System Single-Homed ist (was völlig falsch ist, sofern Sie nicht vom physischen Netzwerk getrennt sind und nur im Loopback laufen).

verwandte Informationen