ネットワーク接続状態についてNo.37476
ついてる さん 09/12/08 12:46
 
ダイアルアップ接続の状態は確認できるようですが、
どのLANが有効かを知る方法はないでしょうか。
(例えば ipconfigコマンドのような)

ちなみに、複数LANが有効な場合、メールサーバへのアクセスは
どのLANを使うのでしょうか。

[ ]
RE:37476 ネットワーク接続状態についてNo.37479
秀まるお2 さん 09/12/08 13:37
 
 秀丸メールとしては、Windowsのソケットライブラリというのを使ってネット
ワークにアクセスしてるだけなので、特にどの経路からつなぐ、というような指
定はしてないし、その辺の仕組みがどうなってるのかはいまいちよく分かりませ
ん。

 googleで「複数LANカード」で検索するといろいろ出てくるので、その辺の情
報を参考にされたらいいんじゃないかと思います。

[ ]
RE:37476 ネットワーク接続状態についてNo.37480
秀まるお2 さん 09/12/08 13:48
 
 とりあえず思いつきですが…

> どのLANが有効かを知る方法はないでしょうか。

 2つあるLANカードのそれぞれにつながってるルーターのIPアドレスが違って
るということでなら、tracertコマンドで経路確認すれば、どっちのルーターを
通ってるかは分かるんじゃないかと思います。

[ ]
RE:37479 ネットワーク接続状態についてNo.37481
ついてる さん 09/12/08 14:01
 
回答ありがとうございます。

検索してみました。
ライブラリから以下のように確認できるようですね:
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/examples/getifaces.html

マクロからコールできませんか。
具体的には、VPNに繋いでいるかどうかを区別したいです。

[ ]
RE:37481 ネットワーク接続状態についてNo.37483
秀まるお2 さん 09/12/08 14:30
 
 実行可能プログラムがあれば、それをマクロから呼び出して結果を見て判定さ
せるようなマクロは作成可能だと思います。

 そこのサンプルはソースコードしか無いようなのでいまいちのようでして…

 もしもtracertコマンドの結果から判定出来るなら、それで判定させてしまう
のが手っ取り早いんじゃないかと思います。例えば

  tracert -h1 pop.XXXX.XXXX.XX

 とかいうコマンドを実行した時にルーターのIPアドレスが出てきますが、例え
ばそれが、たしかにVPN経由であれば「192.168.0.1」となるってことであれば、
以下のようなマクロで判定可能です。

 (VPN接続してない場合に送受信をキャンセルさせるマクロの例)

    loaddll "tkinfo.dll";
    disabledraw;
    #xOrigin = x; #yOrigin = y;
    #browsemode = browsemode;
    #readonly = readonly;
    if( #browsemode ) browsemodeswitch;
    if( #readonly ) readonlyswitch;
    gofileend;
    #x = x; #y = y;
    run "tracert.exe -h 1 mail.yahoo.co.jp >con";
    moveto #x, #y;
    #cancel = 0;
    searchdown "ms  192.168.0.1 ";
    if( result != yes ) {
        #cancel = 1;
    }
    moveto #xOrigin, #yOrigin;
    undo;
    if( #browsemode ) browsemodeswitch;
    if( #readonly ) readonlyswitch;
    enabledraw;
    if( #cancel ) {
        message "VPN接続してないのでキャンセルします。";
        #n = dllfunc("SetCancel", 1);
    }

 ってな具合でどうでしょ?

[ ]
RE:37483 ネットワーク接続状態についてNo.37488
ついてる さん 09/12/08 19:26
 
なるほど参考になりました。
(マクロの書き方含め)
ありがとうございました。

[ ]