Proxy.pac myIpAddress()는 이더넷 어댑터가 아닌 로컬 주소를 반환합니다.

Proxy.pac myIpAddress()는 이더넷 어댑터가 아닌 로컬 주소를 반환합니다.

이건 일종의 2부야여기에서.

클라이언트가 내 네트워크에 VPN을 연결하면 IP 주소가 할당되어 DHCP에서 252 옵션이 제공됩니다. 그러면 자동 감지가 이 파일을 가져옵니다.

본질적으로 필요한 것은 클라이언트가 VPN 연결에 있는지 확인하여 DIRECT를 해결할 수 있도록 Proxy.pac이 알아내는 방법입니다.

그래서 제가 간단하게 하면var myIp = myipAddress()그런 다음 고정 주소 목록과 일치시키면 문제가 해결됩니다. 그러나 myIpAddress() 함수는 네트워크 어댑터가 아닌 시스템(예: 192.168.10.1)에 대한 로컬 IP를 선택하는 것 같습니다. 제 경우에는 로컬 주소가 일부 로컬 VM에 필요한 MS 루프백입니다. 루프백 어댑터를 비활성화하면 올바른 주소를 확인하기 시작합니다. 이는 이상적인 해결 방법이 아닙니다.

그렇다면 올바른 어댑터에서 원하는 IP 주소를 확인하려면 어떻게 해야 합니까?

  • 지금은 로컬 컴퓨터에서 이 테스트를 수행하고 있습니다.
  • 저는 이것이 폐쇄형 VPN 솔루션이 아니며 현재 결정된 솔루션이라는 것을 알고 있습니다.

미리 감사드립니다...

답변1

불행하게도 Windows에서 올바른 주소를 반환하기 위해 myIpAddress()를 얻는 중입니다.하다NIC의 우선 순위 변경이 포함됩니다(Windows XP에서는 "네트워크 연결" 대화 상자의 "고급" 메뉴에 있는 "고급 설정..." 대화 상자에 있음).

당신이 보고 있는 것과 비슷한 다른 사람의 문제는 다음과 같습니다.http://www.geurtsrus.com/gerke/2005/01/proxy-auto-configuration-blues.html

프록시가 필요한 IP 주소(예: 회사의 로컬 서브넷)보다는 프록시가 필요한 IP 주소를 검색하고 그렇지 않은 경우 DIRECT를 가정하는 것이 더 나을 수 있습니다.

또 다른 대안은 VPN의 클라이언트에 다른 PAC DHCP 옵션을 전달하는 것입니다. VPN 사용자가 전용 서브넷에서 나오는 경우에는 쉬울 수 있지만 LAN 서브넷에서 나오는 경우에는 그렇지 않을 수 있습니다.

답변2

wpad.dat를 wpad.aspx로 리디렉션하고 ASP를 사용하여 IP 주소를 찾을 수 있습니다.

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

답변3

어떤 브라우저를 사용하고 있나요? Mozilla 기반 브라우저에는 이 문제가 있었지만 함수 호출이 원래 시스템이 단일 홈(물리적 네트워크에서 연결이 끊어지고 루프백에서만 실행되지 않는 한 완전히 거짓임)이라고 가정하여 정의되었기 때문에 쉽게 해결할 수 없었습니다.

관련 정보