定期的な受信についてNo.02560
さん 01/08/03 14:46
 
私は、LANでインターネットに接続しています。
そのような環境で、定期的にメールのチェックを行いたい場合
"ダイアルアップ中のみ受信する"のチェックマークをONにすると
ダイアルアップをしてないと判断し、定期的なチェックは行わないのですね。
私だけかもしれませんが、理解するのに時間がかかりました。
そこで、項目を"オンライン時のみ確認する。"等に変更できませんか?
ご検討の程、よろしくお願い致します。


[ ]
RE:02560 定期的な受信についてNo.02561
ながさわ さん 01/08/03 14:57
 
こんにちは、ながさわです。

>"ダイアルアップ中のみ受信する"のチェックマークをONにすると
>ダイアルアップをしてないと判断し、定期的なチェックは行わないのですね。

>そこで、項目を"オンライン時のみ確認する。"等に変更できませんか?

“オンライン時のみ”だと、意味的に(ダイヤルアップはせずとも)
ネットワークに接続しているとき……ってことで、動作が違ってくる
と思います。
それとも、そういう意味の動作を望んでいるのでしょうか? それだ
と、鶴亀メールフォーラムの#03594からのひろさんの要望が、それを
指すものだと思います。

[ ]
RE:02561 定期的な受信についてNo.02562
秀まるお2 さん 01/08/03 15:14
 
> と、鶴亀メールフォーラムの#03594からのひろさんの要望が、それを
> 指すものだと思います。

 実はひろさんのご要望については既に手元のバージョンにて対応済みなんで
すが、「オンライン中かどうか」を判定する方法が、「自分のコンピュータの
IPアドレスが127.0.0.1以外かどうか」で判定する作りになっています。

 たぶんそれで大丈夫だと思いますが、もし問題があるようでしたら他になに
かいい「オンラインかどうか」の判定方法を教えて欲しいです。

[ ]
RE:02562 定期的な受信についてNo.02564
けんきっつ さん 01/08/03 17:57
 
秀まるお2さんこんにちは
 けんきっつです。

オンラインかオフラインかの判断方法ですが

> たぶんそれで大丈夫だと思いますが、もし問題があるようでしたら他になに
>かいい「オンラインかどうか」の判定方法を教えて欲しいです。

インターネット接続している場合は接続形態が何であってもDNSを指定されています
(指定されていなくても出来ますけどIP直打ちでやってる人は居ないですよね)
そこで
1.DNSのIPを取得
 取れない場合はオフライン
 取れたら2.へ
2.DNSのIPが取れたらDNSにPINGを打つ
 返ってきたらオンライン
 返って来なかったらオフライン

でダメでしょうか?

これが実現できればLANでもダイアルアップでも
関係なくオン/オフの判断ができると思うのですが。

要望の方の#03594のひろさんの発言から引用
>本体にビルトインされていて、LAN ケーブルを抜いた状態ではダイアルアッ
>プを試みます。ですからひょっとすると、I.E 側はLAN カードが刺さってい
>るかではなく、接続されているかを判定できるのかもしれません。

というのもIEが↑の様なインターネット接続に必要な条件を
判定しているとも考えられなくもありませんね。

けんきっつ

[ ]
RE:02564 定期的な受信についてNo.02565
PATIO さん 01/08/03 18:05
 
>2.DNSのIPが取れたらDNSにPINGを打つ
> 返ってきたらオンライン
> 返って来なかったらオフライン

これだとPINGを打った時にダイアルアップしてしまいませんか?

[ ]
RE:02564 定期的な受信についてNo.02566
さん 01/08/03 18:23
 
みなさま、こんばんは。

>オンラインかオフラインかの判断方法ですが
>IPアドレスが127.0.0.1以外か....
  この方法では以下の条件がそろうと問題がでそうな気がしますが、問題ないのでし
ょうか?
    1.LANを組んでいる。(127.0.0.1ではないIPを持っている)
    2.インターネットにはダイアルアップで接続してる。

>インターネット接続している場合は接続形態が何であってもDNSを指定されています
>(指定されていなくても出来ますけどIP直打ちでやってる人は居ないですよね)
  この方法も問題ありのような気がします。
    Proxyソフトの種別によって、クライアントPCからではDNSのIPを取得できない場
合があります。
    現に、私はProxy経由でインターネットに接続しています。
    私のマシンで"IPCONFIG -all"と打つとDNSの欄は空白です。

そこで、このような用法ではどうですか?
  ・接続形態の設定がLANの場合
      → 無条件で確認
          ※接続できない場合は、LANまたはメールサーバ側で問題があるなので、
割り切る。
  ・接続形態がダイアルアップの場合
      → けんきっつさんのDNS作戦

[ ]
RE:02565 定期的な受信についてNo.02568
けんきっつ さん 01/08/03 19:13
 
みなさんお晩でございます。
 けんきっつです。

>これだとPINGを打った時にダイアルアップしてしまいませんか?

今自分の環境(Win2k、IE6.0PR)でインターネットの設定を
常にこの設定にダイアルする?(すいませんこちらのIE英語版なんです)に
変更してコマンドプロンプトからPINGを試したのですが自動接続はされませんでした
(Destination host unreachableの100%Loss)
PINGやNSLOOKUP、TRACERTなどは接続しているとの前提の上で
行われると考えていいのではないでしょうか?

それとLoopBackAdress(127.0.0.1)で接続状況を確認するのも
少し問題があると思います。
そもそもLoopBackAdress自体がネットワーク環境の無いPCで
ネットワークアプリ(IIS等)を使う時の為のごまかし?みたいなものなので
それでしっかり判定するのは難しいと思います。
もしPCに対して「あんたは127.0.0.1かい?」と聞けば
LANカードもモデムも装備していないPCでも「そうです」と返してきますし
「あんたのIPは何?」と聞けば
振られていれば「192.168.0.4よ」とか返しますが固定の場合もあるので
接続しているかどうかの信憑性はありませんし振られてなければ「IP無いよ」です。
厳密に言えば127.0.0.1なのかそうでないかの答えはすべてYESになるわけですから
別の方法が良いのではないかなぁと思います。

「き」さんの発言のことも考えるとLAN環境の場合DNSで判定するのではなく
各々の環境でのインターネット接続時に必ず通過する地点に対して
PINGを打てば良いのではないでしょうか?
「き」さんの様なLAN+ProxyならProxyのIP
LAN固定IP+デフォルトルートならデフォルトルートのIP
というようにすればいいと思います。

それにこの↑の方法が出来るならば
ダイアルアップ+DNS固定ならDNSのIP
ダイアルアップ+DNSが自動ならプロバイダのWWWサーバーのIP
(LANだけどインターネットはダイアルアップという人も含む)
も可能だと思います。

この場でとっさに考えているものなので抜けはあると思いますが…

けんきっつ

[ ]
RE:02562 定期的な受信についてNo.02570
WIZ さん 01/08/03 22:08
 
秀まるお2さん、こん○○は。WIZです。

色々提案がなされているようですが、

1. ネットワークアダプタにPPPアダプタが無ければ無条件にオンライ
  ンとする。
2. PPPアダプタが有れば、PPPアダプタのステータスを見てオンライン
  かオフラインか判断する。
3. PPPアダプタが有りのオフラインの場合で、デフォルトゲートウェ
  イが設定されている場合、デフォルトゲートウェイのネットワーク
  アドレスと一致する非PPPアダプタが有ればオンラインとする。

ってのは無理なんでしょうか? PPPアダプタのステータスを調べる手
段が無ければ無理ですが…。もし可能であれば、ネットワーク環境へ
の依存性はかなり小さくなると思うんですけどね。とっくに、検討済
みも却下された手段だったらごめんなさい。


[ ]
RE:02568 定期的な受信についてNo.02585
秀まるお2 さん 01/08/06 11:25
 
 とりあえずここにレスしますが、そもそもDNSサーバーやデフォルトゲート
ウェイのIPアドレスを取り出す方法がいまいち分かりません。それが分かれば、
たぶん

 − 自分自身が127.0.0.1であれば、オフライン。
 − デフォルトゲートウェイにPINGして応答があれば、
 LANケーブルが刺さっている(=オンライン)

 と判断していいように思います。

 デフォルトゲートウェイにPINGして自動ダイヤルアップすることは普通無い
はずだし…。

 問題はどうやってデフォルトゲートウェイ(またはDHCPサーバー)のIPアド
レスを取得するか、および、PINGに相当することをどうやってやるのかです。
僕自身はソケットライブラリのリファレンスしか見たことがないんですが、そ
れを見る限りは不可能な気がします。

 誰か方法知りませんか?

[ ]
RE:02585 定期的な受信についてNo.02587
tatuto さん 01/08/06 12:06
 
tatutoです。

秀まるお2<xxxxxxxxxx@maruo.co.jp>さんより適座引用しています。

> とりあえずここにレスしますが、そもそもDNSサーバーやデフォルトゲート
>ウェイのIPアドレスを取り出す方法がいまいち分かりません。それが分かれば、
>たぶん

概出だったらすいません。
ちょっとシステムのWinの再セットアップにミスってしまって
ログをかなり紛失してしまったもので (T_T)

ipconfig /all
で出てくるかと

[ ]
RE:02587 定期的な受信についてNo.02589
秀まるお2 さん 01/08/06 12:45
 
> ipconfig /all
> で出てくるかと

 つまり、ipconfigがやってることを鶴亀メールの中で(C言語のプログラム
として)実現するにはどうするのかなぁ?というのが分からないという話です。

 しいて、ipconfig.exeを鶴亀メールから起動して、その結果を解析してって
方法もありますけど、それではなんだし…。

 Linux関係でipconfigおよびpingのソースコードでも拾ってくれば分かるの
やら?。探してみます。

[ ]
RE:02589 定期的な受信についてNo.02593
秀まるお2 さん 01/08/06 14:08
 
 Linuxのipconfig.cを拾ってきましたが、意味不明でいやになりました。

 Windows2000に付属のipconfig.exeを、dumpbin /importsで見てみたら、一
応iphlpapi.dllを呼んでいることは分かったんですが、このDLL用のヘッダフ
ァイルはVisualC++5.0には付属していませんでした。

 ということで、こういう調査をいつまでもやってたらきりがないので、とり
あえずwininet.dllのInternetGetConnectedState関数の復帰値をそのまま使っ
てONLINE/OFFLINEの判定をするようにしてみます。

 ちなみに手元のWindows98テスト環境(Windows98 + IE4.0)では、そもそも
「ネットワーク接続が存在しない時は、ダイヤルする」のような設定が無くて、
テストが出来ませんでした。他のマシンでIE5.0の物もありますが、今仕事に
使っているのでLANケーブルを引っこ抜く訳にもいかないです。

 IE5.0を入れてしまうとIE4.0のテスト環境が無くなるし、もう頭が痛いです。
とりあえず、今の仕様で次のバージョンをみんなに使ってもらって問題があれ
ばまた考えてたいと思います。

[ ]
RE:02593 定期的な受信についてNo.02599
ひろ さん 01/08/06 16:46
 
 秀まるおさん今日は、ひろです。
> とりあえず、今の仕様で次のバージョンをみんなに使ってもらって問題があれ
> ばまた考えてたいと思います。
 これで十分です。
 それではよろしくお願いします。

[ ]