次の PAC ファイルを検討してください。
function FindProxyForURL(url, host) {
if (dnsDomainIs(host, "intranet.domain.com"))
return "DIRECT";
if (isInNet(myIpAddress(), "10.10.5.0", "255.255.255.0"))
return "PROXY 1.2.3.4:8080";
return "PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080";
}
$http_proxy
これらの設定を環境変数に転送する方法はありますか$no_proxy
?
答え1
no_proxy
のように設定できますno_proxy="intranet.domain.com,*.local,..."
が、環境変数はプロセスごとの文字列なので、a) 何らかのロジックを表現する方法isInNet
や、b) 古くて無効な文字列が設定されている既存のプロセスの環境を更新する方法はありません。すべてのプロセスを強制終了し、http_proxy
何らかのロジックに基づいて新しいものを設定し、すべてのプロセスを再起動して、親プロセスから新しいコピーを受け取るisInNet
ようにします。fork
http_proxy
すべてのプロセスが制御下にある場合は、環境変数を調整するための API を作成できます。これは、fork
制御下にないものを実行すると失敗します (そのプロセスにはすぐに間違った文字列が設定される可能性があるため)。また、既存のビジネス ロジックを使用するだけの場合と比べて、おそらく不必要に複雑になります。
[†] まあgdb
、そうでなくてもメモリをモンキーパッチングするので、簡単でも非常識でもない方法だ