IPアドレスが変わった事を検出したい

解決


ひろんた  2005-06-23 08:55:02  No: 122922

こんばんは

会社にてLAN回線が2つあります。
社内LANとインターネットです。
それぞれDHCPより自動取得しています。
社内LANの時はプロキシを使いインターネットの時は
空白にしています。

それぞれを切り替えた時にプロキシを一回一回設定するのは
大変なので自動で切り替えしようとしています。

インターネットセットオプションは動いていますが
IPが変わった時に検出で悩んでいます。

Winsock1.localipでIP取得して5秒ごとにIPを見に行って
変化したらプロキシの設定を変えるようにしています。

ところがいったんIPを取得するとキャッシュに残ってるらしく(推測)
IPが変わっているのに取得されるIPは変わりません。

しょうがないので違うEXEでIPをテキストに出して
変化を見ていますが5秒ごとに砂時計がでて
全然スマートじゃないです

なにか良い方法はないでしょうか?
よろしくお願いします。


通ってみた  2005-06-23 18:57:48  No: 122923

キャッシュに残っているとすれば、キャッシュを削除してからアクセスすればOKだと思われ
そんなAPIがあるので検索してけれ

※原因がそれでなければ他の視点で・・・


ひろんた  2005-06-23 21:12:20  No: 122924

こんにちは
通ってみたさん
早速の御助言ありがとうございます。

キャッシュクリアやってみましたが
残念ながら結果は同じでした。

Winsock1.closeとかも書いてみたのですが
変わらず。。。

なにか取得方法に問題あるのでしょうか?
よろしくお願いします。

タイマーのなかのコードはこんな感じです。

    iptxt = Left(Winsock1.LocalIP, 3)
    MsgBox iptxt
    If a = iptxt Then
        Exit Sub
    End If
        a = iptxt
    
    If iptxt = "172" Then
        Call Command1_Click
    Else
        Call Command2_Click
    End If


ななし  2005-06-23 22:06:01  No: 122925

GetIpAddrTable()
NotifyAddrChange()
API 等でどうでしょ。


ひろんた  2005-06-23 22:52:17  No: 122926

ななし様

御助言ありがとうございました。
GetIpAddrTable()で完璧にうまくいきました。
一応APIはWebで一通り見たつもりだったのですが
こんないい命令もあるんですね

今回はありがとうございました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加