問題タブ [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 投票する
1 に答える
3428 参照

networking - スニッフィング検出

「ICMPのテスト」がどのように機能するかを誰かに教えてもらえますか? (ローカルネットワークでの盗聴を検出する方法の 1 つ)

0 投票する
4 に答える
1627 参照

linux - すべての ICMP 応答メッセージをログに記録する方法

私が遭遇したこの質問があります.GNU / LinuxでICMP応答メッセージのIPアドレスを見つけるにはどうすればよいですか?

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

java - Java ライブラリ (JpCap) を使用して Ping6 リクエストを送信する方法

ping6 リクエストを使用して ipv6 デバイスを監視したいと考えています。Ping6 リクエストを送受信できるオープン ソース ライブラリがあれば教えてください。JpCap で試してみましたが、成功できず、以下のエラー メッセージが表示されました。

java.io.IOException: jpcap.JpcapSender.sendPacket(JpcapSender.java:93) の jpcap.JpcapSender.nativeSendPacket(Native Method) で、Ping6.sendPing6Request(Ping6.java:131) の Ping6.main(( Ping6.java:40)

この問題を解決する方法を教えてください。JpCap を使用して Ping6 を送信する方法はありますか?

あなたの考えは非常に高く評価されています。

-R.ラビクマール

私の実装を以下に示します。

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

ruby - RubyのデッドクライアントにUDP送信するために着信ICMPのIPを取得するにはどうすればよいですか?

そう..私はUDPとIO.selectをブロックする小さなマルチプレイヤーゲームをやっています。私の問題に..(サーバーで)packet, sender = @socket.recvfrom(1000)死んだクライアントにパケットを送信したばかりのUDPソケット()から読み取ると、ICMPに到達できなくなります(そしてErrno::ECONNRESETrubyでは例外になります)。問題は、そのICMPのIPを抽出する方法がまったく見つからないことです。そのため、その死んだクライアントをクリーンアップできます。

誰もがこれを達成する方法を知っていますか?

ありがとう

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

c - ICMP ホスト到達不能

UDP ポートにデータを送信しようとした後、ICMP Host Unreachable が発生したかどうかを確認するにはどうすればよいですか? マシンで開いている UDP ポートを確認したい。

0 投票する
3 に答える
24144 参照

java - InetAddressクラスのisReachableに関する問題

割り当てとして、LAN上で生きているすべてのコンピューターを見つける必要があります。クラスisReachableの関数を使用しています。InetAddressしかし、問題は、私が到達できるものが何も示されていないことです。だから私はisReachableグーグルのIPを使ってみましたが、それでもこれには到達できません。

コードは次のとおりです。

出力は:Unreachable

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

winapi - 非同期コールバックでの IcmpSendEcho2 の使用

私はIcmpSendEcho2 の MSDN ドキュメントを読んでいますが、回答よりも多くの疑問が生じます。

私は、次のような他の Win32 API からの非同期コールバックに精通していますReadFileEx... 操作が 以外の結果で完了するまで、ドライバーが使用するために予約されることを保証するバッファーを提供しますIO_PENDING。失敗します (そして、GetCompletionStatusどれを見つけるために呼び出します)。タイムアウトは私の責任であり、CancelIo処理を中止するために呼び出すことができますが、ドライバーが操作をキャンセルし、完了ルーチンをステータスで呼び出すまで、バッファーは予約されたままですCANCELLED。そして、OVERLAPPEDこれらすべてを通じてリクエストを一意に識別する構造があります。

IcmpSendEcho2OVERLAPPED非同期リクエストにコンテキスト構造を使用しません。また、ドキュメントは、ping がタイムアウトまたは失敗した場合に何が起こるかについて、過度に最小限で不明確です(失敗は、ネットワーク接続の欠如、ローカル ピアの ARP エントリの欠落、リモート ピアの介在ルーターからの ICMP 宛先到達不能応答などです)。

タイムアウトや失敗時にコールバックが発生するかどうかを知っている人はいますか? 特に、応答がない場合、バッファを別の呼び出しに再利用できますか、IcmpSendEcho2または応答が遅れた場合に備えて永久に予約されますか?

私は Win32 サービスからこの関数を使用したいと考えています。つまり、エラー処理のケースを正しく取得する必要があり、バッファーをリークすることはできません (または、API がバッファーをリークする場合は、ヘルパー プロセスを使用する必要があるため、リクエストを放棄する方法があります)。

コールバックが行われる方法には、醜い非互換性もあります。PIO_APC_ROUTINE最初のパラメーターは 2 つの署名間で一致しているように見えるので、OS バージョン チェックで Vista 以降が返された場合にのみ 2 番目のパラメーターを使用する限り、新しい方を使用できるはずですか? MSDN は「Windows のバージョン チェックを行わないでください」と言っていますが、新しい引数を持つバージョンのセットは、iphlpapi.dll に関数が存在するバージョンのセットと同じではないため、そうする必要があるようです。

この関数と APC を使用する追加のドキュメントまたは作業コードへのポインターは大歓迎です。

これが完全に間違ったアプローチであるかどうかも教えてください。つまり、生のソケットを使用するか、++ の組み合わせを使用するIcmpCreateFile方がより堅牢である場合です。WriteFileExReadFileEx

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

networking - Problem with pinging broadcast address

When I try to ping the broadcast address on my LAN, it shows ICMP replies from only 3 hosts, everytime, even though there many hosts connected to the LAN.

For the broadcast address, I did

I used the Bcast addr 172.30.127.255 to ping everyone...

Why is that only 3 hosts respond to my ping. Is this bcast address given by ifconfig not the one to be used? I think this might be the reason why I am not able to carry out an amplification attack on a system on my LAN. I injected ICMP-echo packets with spoofed source address of my friend's host and sent it to this broadcast address, and was disappointed to see that his bandwidth was not affected...

Kindly explain...

0 投票する
3 に答える
1983 参照

c - C で基本的な traceroute スクリプトを作成する

trceroute スクリプトを作成する必要がありますが、その試みが正しいかどうかわかりません。

現在、私はそのようにしています(間違っているか不器用な場合は修正してください):

  1. ip- および udpheader の構造体を取得しました
  2. チェックサム機能
  3. 2 つのソケットを開く: 1 つは SOCK_RAW モードで UDP パケットを送信するため (ttl を操作するため)、もう 1 つはルーターから ICMP 応答を受信するためです。
  4. sendto() を使用して UDP パケットを送信する
  5. ICMP 回答を受信して​​処理する方法がわからない

すべてのヘッダーを自分で定義する必要がある sock_raw を使用するよりも、TTL を変更するより快適な方法はありますか? ICMP sock を開くとき、socket() にはどのパラメータを使用すればよいですか? ICMP 回答を受け取る方法は?

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

c - UDPパケットを送信し、CのルーターからICMP応答を受信します

指定されたIPアドレスにUDPパケットを送信し、存続時間が経過したことを通知するルーターのICMP応答を待機するCプログラムを作成しようとしています。最初はメカニズムを理解したいだけなので、とてもシンプルにしています。私が必要としているのは、誰かが私のコードをチェックして、何が間違っていて何が欠けているかについてフィードバックを与えることです。私はCプログラミングの経験があまりありませんが、課題としてそれをしなければなりません-それを理解するために最善を尽くします...

「recvmsg()を処理できませんでした」というメッセージが表示され続けます。そして、私はもう他に何を試すべきか見当がつかない。ICMPの回答を受け取り、その送信者のIPアドレスを読みたいのですが。

役立つヒントを楽しみにしています。

よろしくお願いします!