问题标签 [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”到底是如何工作的吗?(在本地网络中检测嗅探的方法之一)
linux - 如何记录每个 ICMP 回复消息
我遇到了这个问题,我们如何在 GNU/Linux 中找到 ICMP 回复消息的 IP 地址?
java - 如何使用 Java 库 (JpCap) 发送 Ping6 请求
我想使用 ping6 请求监控 ipv6 设备。请让我知道是否有任何开源库可用于发送和接收 Ping6 请求。我尝试使用 JpCap 但无法成功,并且收到以下错误消息
java.io.IOException: 在 Ping6.sendPing6Request(Ping6.java:131) 在 Ping6.main( Ping6.java:40)
请帮助我如何解决这个问题。有什么方法可以使用 JpCap 发送 Ping6,
非常感谢您的想法。
-R.拉维库玛
我的实现如下所示,
ruby - 由于 UDP 发送到 Ruby 中的死客户端,如何获取传入 ICMP 的 IP?
所以.. 我正在做一个阻止 UDP 和 IO.select 的小型多人游戏。对于我的问题..(在服务器中)从刚刚向死客户端发送数据包的 UDP 套接字()读取packet, sender = @socket.recvfrom(1000)
会导致 ICMP 无法访问(并且Errno::ECONNRESET
在 ruby 中出现异常)。问题是我找不到任何方法来提取该 ICMP 的 IP .. 所以我可以清除那个死客户端。
任何人都知道如何实现这一目标?
谢谢
c - ICMP 主机不可达
在尝试向 UDP 端口发送一些数据后,我如何知道 ICMP 主机是否无法访问?我想检查机器上打开的 UDP 端口。
java - InetAddress 类中 isReachable 的问题
作为一项任务,我必须找到局域网上所有可用的计算机。我正在使用类isReachable
的功能InetAddress
。但问题是我没有发现任何东西。因此,我尝试isReachable
使用 Google 的 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
只要我只在操作系统版本检查返回 Vista 或更新版本时才使用第二个参数,我就应该能够使用更新的参数?尽管 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 个套接字:一个用于以 SOCK_RAW 模式发送 UDP 数据包(用于操作 ttl),一个用于从路由器接收 ICMP 应答。
- 使用 sendto() 发送 UDP 数据包
- 不知道如何接收和处理 ICMP 答案
有没有比使用 sock_raw 我必须自己定义所有标题内容更舒适的方法来更改 TTL?打开 ICMP sock 时我应该为 socket() 使用哪些参数?如何接收 ICMP 答复?
c - Send an UDP packet and receive an ICMP response from router in C
I'm trying write a C program that sends an UDP packet to a given IP adress and waits for an ICMP response of a router telling that the time to live expired. It's kept very simple because I just want to understand the mechanism at first. What I need is someone checking my code giving feedback on what's wrong and what's missing. I'm very unexperienced at C-programming but I have to do it as an assignment - giving my best to understand it...
I keep receiving "Could not process recvmsg()." and I have no clue anymore what else to try. I'd like to receive an ICMP answer and read its senders IP-Address.
Looking forward to helpfull hints.
Best regards!