LoginSignup
3

More than 5 years have passed since last update.

LabVIEW HTTPClient のプロキシー設定

Last updated at Posted at 2014-05-13

LabVIEW HTTPClient のプロキシー設定

LabVIEW HTTPClient関数は、システムのプロキシーサーバの設定は見ないので、
そのままでは、プロキシー経由の通信ができない。
Windowsでは、インターネットオプション>>接続>>LANの設定の画面に
ある「プロキシーサーバ」のところに、設定項目があるが、これを設定しても
HTTPClient 関数には無視される。

環境変数に http_proxy を設定すれば、Proxyサーバ経由でWebサーバと通信することができる。

なお、Windowsでの環境変数の設定は、マイコンピュータのプロパティから「システムの詳細設定」
画面を開いて、「詳細設定」タブ画面の「環境変数」ボタンから設定できる。
Proxyサーバのアドレスやポート番号は、ネットワーク管理者に確認すること。

変数名: http_proxy
変数値: http://<サーバ名 or IP アドレス>: <ポート番号>
例: http://192.168.52.240:8880

LabVIEW起動中に、この値を変更しても、LabVIEWには認識されないので、環境変数 http_proxy設定後に、
一度、LabVIEWを終了する必要がある。
(http_proxyが必要なあたりは、なぜか unixから移植されたツール等と同じ。)

なお、cRIO-RTでも、.outファイル(DLL)を作成して、putenv()関数で、環境変数HTTP_PROXYを
設定することで、同じようにプロキシーサーバ経由でHTTPClientが使えることは確認した。

ちなみに LabVIEW 2013 から追加された WebDAVクライアント関数も同様。

できれば、DLLなどを自作しなくても使えるようにLabVIEW側で対応してほしいものだ。

さらにいくつか問題が発覚したので、追記しておく。

1.認証
環境変数http_proxyに、ユーザ名とパスワードを付加すれば解決できそうな気がしますが、
機会がなく試したことはありません。もしかしたら、proxy_user, proxy_passwordかもしれません。
また、ユーザ名とパスワードがだだもれになること、ユーザによって切り替えできないことも問題。

2.環境変数http_proxyだと宛先IPによるプロクシーサーバの切り替えができない、が、対象外は設定できる
問題としてはより深刻。
社外のサーバ、社内の有線/無線LANDAQデバイスと同時に通信する場合、
社外のサーバに対して、プロクシーサーバ経由でしかつなげられないからといって、
環境変数http_proxyを設定してしまうと、社内の有線/無線LANDAQデバイスと
通信できなくなってしまう。
Windowsのプロクシー設定だと、proxy.pacというスクリプトを書くことで、接続しようと
している宛先のIPによって、プロクシー経由か、直接つなぐかを切り替えできますが、
環境変数http_proxyでは、そういう器用なことはできません。

無線LANDAQデバイスで各種センサーデータを収集して外部のサーバに送信する、というのは
ごく普通に思いつくソリューションなので、これができないとなると、結構、痛い。

接続先のIPアドレスによって、プロクシーサーバの切り替えはできないが、特定のIPを
プロクシーの対象外にすることはできる。
方法は、環境変数no_proxyにIPアドレスをカンマ区切りで追加していくだけ。
注意としては、'*'などワイルドカード指定にはできないらしい。

LabVIEWのhttp/webdav通信でも、Windowsの設定を利用するように修正してもらいたいものだ。

参考
http://sechiro.hatenablog.com/entry/2013/08/06/no_proxy_%E3%81%AB%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%A8%E3%81%8B%E3%83%AF%E3%82%A4%E3%83%AB%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89%E3%82%92

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
3