LoginSignup
7
6

More than 5 years have passed since last update.

Windowsのプロキシ情報取得について

Last updated at Posted at 2014-02-16

少し前にハマったのでメモ。
何でもVistaからプロキシの設定箇所が増えたらしい。

今まで

  • インターネットオプション

だけだったのが

Vista以降

  • netsh コマンド

でも設定できるようになった。
しかも、インターネットオプションとは別扱いらしい。
コマンドプロンプト上でのnetsh上の設定確認方法は

netsh winhttp show proxy

となる。

今までJavaでHttpConnectionクラス等を使用して外部と通信をする時にシステムに登録されているプロキシ情報を使用する場合は
接続前に環境設定でシステムのプロキシ設定の使用を有効化していれば、Windowsの場合はインターネットオプションに設定されているプロキシ設定を自動的に取得・使用してくれる。

システム環境設定使用の有効化
System.setProperty("java.net.useSystemProxies", "true")

が、netshコマンドで設定された値は上記では取得出来ない模様。。。

対応として、今のところ以下の物を確認出来ているが
正しい方法が他に有るかどうかは未確認。。。

  • JNIを使用する
  • Runtimeでnetshコマンドを叩いて文字列をスクレイピング

JNIについては、工数の関係上作成出来なかったが市販のライブラリにて取得出来る事は確認出来ている。
結局、今回はRuntimeの方を実装したけど正式な方法とかあるのかどうか、、、
Java8だったらjava.net.useSystemProxiesで取得できるようになってるのかな?

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6