Mengapa berkas PAC Anda memilih adaptor jaringan yang salah
Sebuah laptop dapat memiliki beberapa alamat lokal. Aturan PAC berbasis myIpAddress() dapat mengenali antarmuka yang berbeda dari yang Anda harapkan.
Laptop berada di Wi-Fi kantor, kabel Ethernet terpasang, dan adaptor VPN masih ada. Berkas PAC Anda menanyakan myIpAddress() di jaringan mana ia berada. Itu terdengar wajar sampai ia mendapat alamat milik adaptor yang salah.
Detail yang hilang adalah bahwa fungsi tersebut mengembalikan satu alamat. Itu bukan inventaris semua antarmuka, dan tidak menghubungi situs web untuk menemukan IP publik Anda. Alamat privat, atau bahkan cadangan loopback, tidak memberi tahu Anda alamat keluar mana yang akan digunakan permintaan melalui proksi.
Satu jawaban untuk mesin dengan beberapa alamat
Pemilihan antarmuka jaringan termasuk dalam implementasi PAC. Saran lama untuk menyusun ulang adaptor Windows mungkin menggambarkan versi peramban dan sistem operasi tertentu, tetapi itu perbaikan umum yang buruk. Chromium mendokumentasikan algoritme pemilihan dan batasan multi-jaringan miliknya sendiri; klien lain belum tentu membuat pilihan yang sama.
Mulailah dengan mengidentifikasi nilai yang benar-benar disediakan peramban yang terdampak, lalu bandingkan dengan pemeriksaan subnet dalam skrip Anda. Lakukan ini secara terpisah di Wi-Fi, Ethernet, dan koneksi VPN yang disetujui. Alamat yang tampak mengejutkan masih dapat memenuhi aturan implementasi.
Buat keputusan bergantung pada lebih sedikit dugaan
Jika memungkinkan, pilih proksi berdasarkan nama host tujuan alih-alih antarmuka klien yang diasumsikan. Jika deteksi jaringan diperlukan, gunakan sinyal yang disengaja dan terdokumentasi yang dikendalikan organisasi Anda. Deteksi berbasis DNS juga memiliki mode kegagalan, jadi tentukan apa yang terjadi ketika sinyal itu tidak tersedia.
Beberapa implementasi menawarkan myIpAddressEx(). Periksa dukungan dan format pengembaliannya sebelum mengadopsinya; ini bukan pengganti langsung untuk satu string IPv4. Terakhir, verifikasi rute permintaan yang dihasilkan secara independen. Mengenali subnet kantor dengan benar dan mencapai proksi yang dimaksud adalah dua hasil terpisah.