問題タブ [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.
networking - スニッフィング検出
「ICMPのテスト」がどのように機能するかを誰かに教えてもらえますか? (ローカルネットワークでの盗聴を検出する方法の 1 つ)
linux - すべての ICMP 応答メッセージをログに記録する方法
私が遭遇したこの質問があります.GNU / LinuxでICMP応答メッセージのIPアドレスを見つけるにはどうすればよいですか?
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.ラビクマール
私の実装を以下に示します。
ruby - RubyのデッドクライアントにUDP送信するために着信ICMPのIPを取得するにはどうすればよいですか?
そう..私はUDPとIO.selectをブロックする小さなマルチプレイヤーゲームをやっています。私の問題に..(サーバーで)packet, sender = @socket.recvfrom(1000)
死んだクライアントにパケットを送信したばかりのUDPソケット()から読み取ると、ICMPに到達できなくなります(そしてErrno::ECONNRESET
rubyでは例外になります)。問題は、そのICMPのIPを抽出する方法がまったく見つからないことです。そのため、その死んだクライアントをクリーンアップできます。
誰もがこれを達成する方法を知っていますか?
ありがとう
c - ICMP ホスト到達不能
UDP ポートにデータを送信しようとした後、ICMP Host Unreachable が発生したかどうかを確認するにはどうすればよいですか? マシンで開いている UDP ポートを確認したい。
java - InetAddressクラスのisReachableに関する問題
割り当てとして、LAN上で生きているすべてのコンピューターを見つける必要があります。クラスisReachable
の関数を使用しています。InetAddress
しかし、問題は、私が到達できるものが何も示されていないことです。だから私はisReachable
グーグルのIPを使ってみましたが、それでもこれには到達できません。
コードは次のとおりです。
出力は:Unreachable
winapi - 非同期コールバックでの IcmpSendEcho2 の使用
私はIcmpSendEcho2 の MSDN ドキュメントを読んでいますが、回答よりも多くの疑問が生じます。
私は、次のような他の Win32 API からの非同期コールバックに精通していますReadFileEx
... 操作が 以外の結果で完了するまで、ドライバーが使用するために予約されることを保証するバッファーを提供しますIO_PENDING
。失敗します (そして、GetCompletionStatus
どれを見つけるために呼び出します)。タイムアウトは私の責任であり、CancelIo
処理を中止するために呼び出すことができますが、ドライバーが操作をキャンセルし、完了ルーチンをステータスで呼び出すまで、バッファーは予約されたままですCANCELLED
。そして、OVERLAPPED
これらすべてを通じてリクエストを一意に識別する構造があります。
IcmpSendEcho2
OVERLAPPED
非同期リクエストにコンテキスト構造を使用しません。また、ドキュメントは、ping がタイムアウトまたは失敗した場合に何が起こるかについて、過度に最小限で不明確です(失敗は、ネットワーク接続の欠如、ローカル ピアの ARP エントリの欠落、リモート ピアの介在ルーターからの ICMP 宛先到達不能応答などです)。
タイムアウトや失敗時にコールバックが発生するかどうかを知っている人はいますか? 特に、応答がない場合、バッファを別の呼び出しに再利用できますか、IcmpSendEcho2
または応答が遅れた場合に備えて永久に予約されますか?
私は Win32 サービスからこの関数を使用したいと考えています。つまり、エラー処理のケースを正しく取得する必要があり、バッファーをリークすることはできません (または、API がバッファーをリークする場合は、ヘルパー プロセスを使用する必要があるため、リクエストを放棄する方法があります)。
コールバックが行われる方法には、醜い非互換性もあります。PIO_APC_ROUTINE
最初のパラメーターは 2 つの署名間で一致しているように見えるので、OS バージョン チェックで Vista 以降が返された場合にのみ 2 番目のパラメーターを使用する限り、新しい方を使用できるはずですか? MSDN は「Windows のバージョン チェックを行わないでください」と言っていますが、新しい引数を持つバージョンのセットは、iphlpapi.dll に関数が存在するバージョンのセットと同じではないため、そうする必要があるようです。
この関数と APC を使用する追加のドキュメントまたは作業コードへのポインターは大歓迎です。
これが完全に間違ったアプローチであるかどうかも教えてください。つまり、生のソケットを使用するか、++ の組み合わせを使用するIcmpCreateFile
方がより堅牢である場合です。WriteFileEx
ReadFileEx
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...
c - C で基本的な traceroute スクリプトを作成する
trceroute スクリプトを作成する必要がありますが、その試みが正しいかどうかわかりません。
現在、私はそのようにしています(間違っているか不器用な場合は修正してください):
- ip- および udpheader の構造体を取得しました
- チェックサム機能
- 2 つのソケットを開く: 1 つは SOCK_RAW モードで UDP パケットを送信するため (ttl を操作するため)、もう 1 つはルーターから ICMP 応答を受信するためです。
- sendto() を使用して UDP パケットを送信する
- ICMP 回答を受信して処理する方法がわからない
すべてのヘッダーを自分で定義する必要がある sock_raw を使用するよりも、TTL を変更するより快適な方法はありますか? ICMP sock を開くとき、socket() にはどのパラメータを使用すればよいですか? ICMP 回答を受け取る方法は?
c - UDPパケットを送信し、CのルーターからICMP応答を受信します
指定されたIPアドレスにUDPパケットを送信し、存続時間が経過したことを通知するルーターのICMP応答を待機するCプログラムを作成しようとしています。最初はメカニズムを理解したいだけなので、とてもシンプルにしています。私が必要としているのは、誰かが私のコードをチェックして、何が間違っていて何が欠けているかについてフィードバックを与えることです。私はCプログラミングの経験があまりありませんが、課題としてそれをしなければなりません-それを理解するために最善を尽くします...
「recvmsg()を処理できませんでした」というメッセージが表示され続けます。そして、私はもう他に何を試すべきか見当がつかない。ICMPの回答を受け取り、その送信者のIPアドレスを読みたいのですが。
役立つヒントを楽しみにしています。
よろしくお願いします!