問題タブ [icmp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
963 参照

c# - Visual c#.netを使用したIcmpモニタリング

いくつかのリモートブランチを監視するアプリケーションを作成したいと思います。2つのことを監視したい

1)icmpドロップ(10個のpingを送信し、2個以上がドロップされた場合はアラート)2)pingの遅延が20ミリ秒を超える場合は、アラートを送信します。

大まかなしきい値を定義しました。それは視覚的なc#で行うことができますか?基本的に私はc#を学び、また私の学習が正しい方向に進むように私のオフィスのために何かをしています。あなたたちが私を正しい方向に向けることができれば、私は感謝するでしょう。.net(グーグルでは意味します)でpingクラスを見たことがありますが、IPがアップしているかどうかしかわからないと思います。

親切に案内してください

0 投票する
1 に答える
1503 参照

c - select で ICMP に応答する

私が興味を持っている基本的なコード シーケンスは (疑似コード) です。

Win2000以降、到達不能なポートにUDPデータグラムを送信した後に返されるICMPパケットがselectをトリガーし、その後recvfromがWSAECONNRESETで失敗します。この場合、 select をタイムアウトで終了させたい (読み取るデータがない) ため、このような動作は望ましくありません。Windows では、これは WSAIoctl SIO_UDP_CONNRESET ( http://support.microsoft.com/kb/263823 ) で解決できます。

私の質問は次のとおりです。

  1. この状況では SIO_UDP_CONNRESET が最善の方法ですか?
  2. 「select」で ICMP を無視したり、recvfrom でフィルタリングしたりする他の方法はありますか (おそらく、タイムアウトのように処理する Windows で WSAECONNRESET エラーを無視すると、このエラーは他のケースで発生する可能性があります)。
  3. Linux と Unix (Solaris、OpenBSD) で同様の問題はありますか?
0 投票する
2 に答える
3295 参照

python - python icmp raw ソケットの実装

私はPythonに比較的慣れていないので、思いやりを持ってください...

raw_sockets を介してサーバーとクライアントを実装しています。私は必要な権限を持っています。

今、私が定義したサーバー:

Q1)なぜ単に入力できないのですか: hosts = 'localhost'. そうすると、sockSer.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) という行を書くことができなくなります。サーバーはクライアントのメッセージを受信しません。gethostbyname(socket.gethostname()) を実行する場合にのみ、192.168.1.101 を取得してから動作します。

別のクラス:クライアントソケット:

Q2)次のように入力する必要がありますか? sockCli.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) または sockCli.connect(address)? connect コマンドがなくても動作するようです。クライアントソケットの?

今、私が次のことを行うと問題が発生します:1)クライアントからサーバーにパケットを送信します:

2) サーバーでパケットを受信し、何かをクライアントに送り返します。

さて、私の重要な質問は次のとおりです 。Q3)サーバーはクライアントに 1 つのパケットのみを送信し、ペイロードは 'b' でした。何が起こるかというと、クライアントは実際に while ループで 2 つのパケットを受信します。最初のパケットはクライアント自体が serverに送信したもので、もう 1 つのパケットはクライアントがサーバーから取得したものです。したがって、私の出力は単に「b」ではなく「ab」です。なぜこれが起こっているのですか???

注: コード全体を入力したわけではありませんが、構文、解析、ヘッダー構成などは正しいと思います。私のコードに明らかな問題がありますか? 必要に応じて、コード全体をアップロードします。

ありがとう

0 投票する
1 に答える
678 参照

c++ - Pingブロードキャストへの返信

私は.NETc++でプログラムを書いています。ローカルネットワークでブロードキャストpingを送信しています。すべてのターゲットデバイスはpingブロードキャストに応答できます。実際、Wiresharkですべての応答を追跡しています。私の目標は、応答するすべてのステーションのIPアドレスを取得することです。

問題は、MicrosoftのAPIには、特定の時間間隔ですべての応答を記録するためのサポートが含まれていないことです。IcmpSendEchoのような関数は、最初の応答で戻るだけです(APIは複数のicmp応答を記録できると述べていますが)、これは既知の問題であり、ここでグーグルして検索すると、誰もがこれらの関数で同じ問題を報告します。

返信を取得するために低レベルになりすぎずに目標を達成するにはどうすればよいですか?Windowsは、ある種のicmp履歴の記録を保持していますか?どんな提案にも感謝します!

0 投票する
1 に答える
1010 参照

c - Macネットワークのpingソースコードのコンパイルエラー

Mac OSネットワークのpingソースコードをAppleからダウンロードします:http ://www.opensource.apple.com/tarballs/network_cmds/network_cmds-356.8.tar.gz

xcodeでコンパイルしますが、10.7と10.6の両方でエラーが発生します。

'IP_NO_IFT_CELLULAR' undeclared(この関数での最初の使用)
' SO_TRAFFIC_CLASS' undeclared(この関数での最初の使用)
' SO_RECV_TRAFFIC_CLASS' undeclared(この関数での最初の使用)
' SO_TRAFFIC_CLASS' undeclared(この関数での最初の使用)

私は何か見落としてますか?

0 投票する
2 に答える
3751 参照

java - ICMPエコー要求をpingします

isReachableを使用する代わりにicmp(エコー要求)にpingを実行する方法はありますか?isReachableはポート7でTCP接続を確立し、wiresharkを使用した場合、WindowsではICMPパケットが表示されず、LinuxではICMPタイプ3(タイプ8および0ではない)が表示されませんでした。それで、誰かが提案や解決策を持っているなら、私に教えてください。どうもありがとう!

0 投票する
1 に答える
6788 参照

java - ホストに到達できないかどうかを確認するにはどうすればよいですか?

upとdownのそれぞれ(0,1)の値を取得しているので、pingホストの到達不能状態を取得しようとしていますが、到達不能なpingホストを通知する条件「2」を取得するにはどうすればよいですか。

私のコード、

アクティブ状態とパッシブ状態とは何ですか?どうすれば確認できますか?


編集:このリンクページ26を参照 http://nagios.sourceforge.net/docs/ndoutils/NDOUtils_DB_Model.pdf

統計列の説明。コードを投稿したときにこの結果を取得したいのですが、その列の「状態」を取得するにはどうすればよいですか?「n」個のホストにループを使用していることを思い出してください。

0 投票する
2 に答える
1934 参照

c# - C# Raw ソケット パケットの受信

現在、単純な ping プログラムを実装して、C# と .NET でのネットワーク プログラミングについて独学しようとしています。

raw ソケットを初期化し、ICMP エコー要求パケットを正しく構築することができました。私のプログラムを実行すると、Wireshark は目的の宛先にエコー要求を送信していることを確認しますが、リモート マシンは決してエコー応答を返しません。複数のマシンに送信してみましたが、すべて同じ結果でした (これらの各マシンは、Windows の ping ユーティリティを使用して ping を実行できます)。私のコードは次のようになります。

リモート マシンが応答を返さない理由を誰かが提案できれば、非常にありがたいです。

0 投票する
1 に答える
866 参照

c# - ICMP ソケットは常にタイムアウトします

C# でルーターに ICMP AddressMask 要求を送信しようとしています。ただし、私のソケットは常にタイムアウトするか、タイムアウトが設定されていない場合、アプリケーションが無期限にループします。コードは次のとおりです。

多くのタイプのルーターがアドレス マスク リクエストに応答しないことは知っていますが、単純な Echo-Request でも試してみましたが、結果は同じでした。

0 投票する
1 に答える
3171 参照

python - スレッドから複数のIPをpingするときのPython ICMP pingの実装?

Windowsでjedieのpythonping実装を使用しています。私が間違っている可能性もありますが、2 台のコンピューター (A と B) に別々のスレッドから ping を実行すると、ソースに関係なく、ping は最初に受信した ping を返します。

ジェダイのフォークの問題かもしれないので、前のバージョンに戻しました。(これは、以下で調査するバージョンです)

次のコード行に追加しましたreceive_one_ping: (134 行目など)

これにより、受信している ping のアドレスを確認できます。(宛先IPと同じはずですよね?)

テスト:

ping1() は既知のオフライン IP (1.2.3.4) に
ping を実行し、ping2() は既知のオンライン IP (192.168.1.1 - 私のルーター) に ping を実行します。

次に、それらを一緒に行うと: (簡単にするためにタイマーを使用)

これは少し混乱しているため (印刷がスレッド化でうまく機能しないため)、ここでは少し明確にしています。

私の質問:

  1. 誰でもこれを再現できますか?

  2. ping はこのように動作する必要がありますか? 私はそうではないと思います。

  3. この動作を行わない Python 用の既存の ICMP ping はありますか?
    または、簡単な修正方法を考えていただけますか?つまりreceive_one_ping、送信先が受信アドレスと一致するまでポーリングすることはできますか?

編集: python-ping github ページに問題を作成しました