แล็ปท็อปอยู่ใน Wi-Fi ของสำนักงาน สาย Ethernet เสียบอยู่ และอะแดปเตอร์ VPN ก็ยังมีอยู่ ไฟล์ PAC ของคุณถาม myIpAddress() ว่าอยู่บนเครือข่ายใด ฟังดูสมเหตุสมผลจนกว่าจะได้ที่อยู่ที่เป็นของอะแดปเตอร์ผิดตัว

รายละเอียดที่ขาดไปคือฟังก์ชันนี้คืนค่าที่อยู่เพียงรายการเดียว มันไม่ใช่บัญชีรายการของทุกอินเทอร์เฟซ และไม่ได้ติดต่อเว็บไซต์เพื่อ ค้นหา IP สาธารณะของคุณ ที่อยู่ส่วนตัว หรือแม้แต่ทางเลือกสำรองแบบ loopback ก็ไม่ได้บอกว่าคำขอที่ผ่านพร็อกซี่จะใช้ที่อยู่ขาออกใด

คำตอบเดียวสำหรับเครื่องที่มีหลายที่อยู่

การเลือกอินเทอร์เฟซเครือข่ายเป็นส่วนหนึ่งของการทำงานของ PAC คำแนะนำเก่าเรื่องการจัดลำดับอะแดปเตอร์ Windows ใหม่อาจอธิบายเบราว์เซอร์และระบบปฏิบัติการเวอร์ชันใดเวอร์ชันหนึ่ง แต่เป็นวิธีแก้ปัญหาแบบสากลที่อ่อนแอ Chromium จัดทำเอกสารอัลกอริทึมการเลือกและข้อจำกัดของหลายเครือข่ายของตัวเอง ไคลเอนต์อื่นไม่จำเป็นต้องเลือกแบบเดียวกัน

เริ่มจากการระบุค่าที่เบราว์เซอร์ที่ได้รับผลกระทบให้มาจริง แล้วเปรียบเทียบกับการตรวจสอบ subnet ในสคริปต์ของคุณ ทำแบบนี้แยกกันบน Wi-Fi, Ethernet และการเชื่อมต่อ VPN ที่ได้รับอนุญาต ที่อยู่ที่ดูน่าประหลาดใจก็ยังอาจเป็นไปตามกฎของการทำงานได้

ทำให้การตัดสินใจพึ่งพาการคาดเดาน้อยลง

เมื่อทำได้ ให้เลือกพร็อกซี่จากชื่อโฮสต์ปลายทางแทนอินเทอร์เฟซไคลเอนต์ที่สันนิษฐาน หากจำเป็นต้องตรวจจับเครือข่าย ให้ใช้สัญญาณที่จงใจและมีเอกสารซึ่งองค์กรของคุณควบคุม การตรวจจับด้วย DNS ก็มีโหมดความล้มเหลวเช่นกัน ดังนั้นจงกำหนดว่าจะเกิดอะไรขึ้นเมื่อไม่มีสัญญาณนั้น

การทำงานบางแบบมี myIpAddressEx() ตรวจสอบการรองรับและรูปแบบการคืนค่าก่อนนำไปใช้ มันไม่ใช่ตัวแทนโดยตรงสำหรับสตริง IPv4 เดียว สุดท้าย ให้ตรวจสอบเส้นทางคำขอที่ได้มาอย่างเป็นอิสระ การจดจำ subnet ของสำนักงานได้อย่างถูกต้องและการไปถึงพร็อกซี่ที่ตั้งใจไว้เป็นผลลัพธ์สองอย่างที่แยกจากกัน

บทความที่เกี่ยวข้อง