%20retorna%20endere%C3%A7o%20local%20e%20n%C3%A3o%20adaptadores%20Ethernet.png)
Isso é meio que uma parte doisdaqui.
Quando os clientes VPN entram na minha rede, eles recebem um endereço IP que, por sua vez, lhes dá a opção 252 do DHCP. A detecção automática então captura este arquivo
O que eu preciso essencialmente é uma maneira de o proxy.pac descobrir se um cliente está em uma conexão VPN para que possa resolver um DIRECT para ele.
Então, se eu fizer um simplesvar meuIp = meuendereçoip()e então basta combiná-lo em uma lista desses endereços fixos e então o problema será resolvido. Porém a função myIpAddress() parece estar captando o IP local da máquina (ex: 192.168.10.1) e não do adaptador de rede. No meu caso, esse endereço local é meu MS Loopback, necessário para algumas de minhas VMs locais. Se eu desabilitar meu adaptador Loopback, ele começará a resolver o endereço correto. Esta não é uma solução alternativa ideal.
Então, como faço para resolver o endereço IP desejado do adaptador correto?
- Tenho conduzido esses testes em minha máquina local por enquanto.
- Estou ciente de que não é uma solução VPN fechada, é apenas o que foi decidido neste momento.
Desde já, obrigado...
Responder1
Infelizmente, fazer com que myIpAddress() retorne o endereço correto no Windowsfazenvolvem 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 se parece com o que você está vendo:http://www.geurtsrus.com/gerke/2005/01/proxy-auto-configuration-blues.html
Talvez seja melhor detectar o endereço IP que precisa de proxy, em vez daqueles que não precisam (ou seja, sub-redes locais na empresa) e assumir DIRETO caso contrário.
Outra alternativa seria passar uma opção PAC DHCP diferente para clientes na VPN. Isso pode ser fácil se os usuários da VPN vierem de uma sub-rede dedicada, mas pode não ser se vierem de uma sub-rede LAN.
Responder2
É possível redirecionar 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";
}
Responder3
Qual navegador você está usando? Os navegadores baseados no Mozilla tiveram problemas com isso, mas eles não puderam ser resolvidos facilmente 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 executando apenas em loopback).