Proxy.pac myIpAddress() devuelve la dirección local y no los adaptadores de Ethernet

Proxy.pac myIpAddress() devuelve la dirección local y no los adaptadores de Ethernet

Esta es una especie de segunda parte.de aquí.

Cuando los clientes VPN ingresan a mi red, se les asigna una dirección IP que a su vez les brinda la opción 252 del DHCP. La detección automática luego toma este archivo.

Básicamente, lo que necesito es una forma para que proxy.pac averigüe si un cliente está en una conexión VPN para poder resolver un DIRECTO para él.

Entonces si hago un simplevar miIp = midirecciónip()y luego haga que coincida con una lista de estas direcciones fijas y luego se resolverá. Sin embargo, la función myIpAddress() parece estar captando la IP local de la máquina (por ejemplo: 192.168.10.1) y no el adaptador de red. En mi caso, esa dirección local es mi MS Loopback, que es necesaria para algunas de mis máquinas virtuales locales. Si desactivo mi adaptador Loopback, comienza a resolver la dirección correcta. Esta no es una solución ideal.

Entonces, ¿cómo hago para resolver la dirección IP que quiero del adaptador correcto?

  • Por ahora he estado realizando estas pruebas desde mi máquina local.
  • Soy consciente de que no es una solución VPN cerrada, es simplemente lo que se ha decidido en este momento.

Gracias de antemano...

Respuesta1

Desafortunadamente, conseguir que myIpAddress() devuelva la dirección correcta en Windowshaceimplican cambiar la prioridad de las NIC (en Windows XP esto se encuentra en el cuadro de diálogo "Configuración avanzada..." del menú "Avanzado" del cuadro de diálogo "Conexiones de red").

Este es el problema de otra persona que se parece al que estás viendo:http://www.geurtsrus.com/gerke/2005/01/proxy-auto-configuration-blues.html

Es posible que sea mejor detectar la dirección IP que necesita proxy, en lugar de las que no (es decir, las subredes locales de la empresa) y asumir DIRECTO lo contrario.

Otra alternativa sería pasar una opción PAC DHCP diferente a los clientes de la VPN. Esto podría ser fácil si los usuarios de su VPN provienen de una subred dedicada, pero podría no serlo si provienen de una subred LAN.

Respuesta2

Es posible redirigir el wpad.dat a wpad.aspx y encontrar la dirección IP con ASP:

<%
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";
}

Respuesta3

¿Qué navegador estás usando? Los navegadores basados ​​en Mozilla tuvieron problemas con esto, pero no pudieron resolverse fácilmente porque la llamada a la función se definió originalmente asumiendo que un sistema tenía un solo alojamiento (lo cual es completamente falso a menos que esté desconectado de la red física y ejecutándose solo en loopback).

información relacionada