アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ。
ここの掲示板(http://oshiete1.goo.ne.jp/kotaeru.php3?q=96873)を参考にVBでPINGを実行するプログラムをやっています。

まず、上のURLの過去質問の回答2にありますソースをベースにしています。失敗したときのエラーメッセージを違うものにしてテストしました。

そうしますと・・・同LAN上にあるPCをターゲットにした場合は問題ないのですが、遠方のサーバなどをターゲットにしますと、ステータスが「0」以外、つまり失敗になります・・・。

DOSプロンプトではきちっと返ってきています。

0かそうでないか、だけの判断では識別できないのでしょうか?

宜しくお願いいたします。

A 回答 (5件)

タイムアウトを長くする。

あるいは何回か繰り返すとか
    • good
    • 0

PINGに関する知識とソースの理解も間違っているんじゃないでしょうか。



近郊は成功するけど遠方のサーバーへのピングで0(=失敗)が戻ってくるんですよね?
ということはタイムアウトの設定を長くとれば良いというだけで。
ソースみましたが
PING_TIMEOUT = 200
の数字を大きくすれば解決するでしょう。

この回答への補足

表現がまずかったですね・・・遠方=LAN上以外のサーバめがけて・・・という意味です。

PING_TIMEOUTを5000とか10000とか50000とかにしてみましたが、だめでした。
やはり、DOSプロンプトでは返ってきます。

何が原因なんだろう・・・。
もっと大きな数字にするのかな????

DOSプロンプトでは問題ないですが、このソース、、、LANから外に出たターゲットつまり192.168.xxx.xxx意外だとだめなような気がするんですが。。。

研究中なので意味不明な質問や意見をしてるかもしれないですがお許しを・・・。

補足日時:2003/11/07 12:09
    • good
    • 0

pOptions.Ttl = 5


では外部まで届かないかも知れませんね。
DOSプロンプトから
> ping 外部サーバ -i 5
を実行すると、
Reply from xxx.xxx.xxx.xxx: TTL expired in transit.
となるのではないでしょうか。

試しにTTLを大きくしてみてください。
pOptions.Ttl = 255
    • good
    • 0

成功の判定は96873の回答1の方法で行えばいいでしょう。

この回答への補足

はい、成功の判定は問題ありません。
問題はPINGで返りがあるはずのものが返ってこない・・・ということでした。
質問の仕方がまずかったですよね・・・申し訳ありません。

補足日時:2003/11/07 13:37
    • good
    • 0

名前解決ができていないのではないでしょうか?


IPでPINGをしても同じですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!