Proxy.pac myIpAddress () retorna o endereço local e não os adaptadores ethernet

1

Esta é a segunda parte daqui .

Quando os clientes VPN entram em minha rede, eles recebem um endereço IP que, por sua vez, fornece a opção 252 do DHCP. A detecção automática, em seguida, pega esse arquivo

O que eu preciso essencialmente é uma maneira do proxy.pac descobrir se um cliente está em uma conexão VPN para que ele possa resolver um DIRECT para eles.

Então, se eu fizer um var myIp = myipAddress () simples e, em seguida, apenas combiná-lo a partir de uma lista desses endereços fixos, ele será resolvido. No entanto, a função myIpAddress () parece estar captando o Ip local para a máquina (por exemplo: 192.168.10.1) e não o adaptador de rede. No meu caso, esse endereço local é o meu MS Loopback, que é necessário para algumas das minhas VMs locais. Se eu desabilitar meu adaptador Loopback, ele começará a resolver o endereço correto. Esta não é uma solução ideal.

Então, como resolvo o endereço IP que quero do adaptador correto?

  • Eu tenho conduzido este teste da minha máquina local por enquanto.
  • Estou ciente de que não é uma solução VPN fechada, é apenas o que foi decidido no momento.

Obrigado antecipadamente ...

    
por Qwerty 08.07.2009 / 05:07

3 respostas

3

Infelizmente, obter myIpAddress () para retornar o endereço correto no Windows faz envolver a alteração da prioridade das NICs (no Windows XP, isso está na caixa de diálogo "Configurações avançadas ..." do " Menu "Avançado" da caixa de diálogo "Conexões de Rede".

Aqui está o problema de outra pessoa que parece com o que você está vendo: link

Você pode fazer melhor para detectar o endereço IP que precisa de proxy, em vez daqueles que não o fazem (por exemplo, sub-redes locais na empresa) e assumir DIRECT caso contrário.

Outra alternativa seria passar uma opção DHCP PAC diferente para os clientes na VPN. Isso pode ser fácil se os usuários da VPN estiverem saindo de uma sub-rede dedicada, mas podem não estar se estiverem saindo de uma sub-rede da LAN.

    
por 08.07.2009 / 05:18
2

É possível redirecionar o wpad.dat para wpad.aspx e encontrar o endereço IP com 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";
}
    
por 10.02.2012 / 16:56
0

Qual navegador você está usando? Os navegadores baseados no Mozilla tiveram problemas com isso, mas não puderam ser facilmente resolvidos porque a chamada de função foi originalmente definida assumindo que um sistema era de hospedagem única (o que é completamente falso, a menos que você esteja desconectado da rede física e rodando apenas no loopback).

    
por 18.07.2009 / 12:34