问题标签 [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 回答
378 浏览

ip - Traceroute如何知道Hops的域名?

我正在研究 ICMP 协议和工具traceroute。我不明白如果在 ICMP 数据报中只能找到 IP,traceroute 如何查找 Hops 的域名。它是如何工作的?

谢谢!

0 投票
1 回答
2554 浏览

c++ - 如何将 IcmpSendEcho2 与 PIO_APC_ROUTINE 一起使用?

我是一个 c++ 新手,我正在尝试用IcmpSendEcho2制作一个“ping 工具”,但我无法让它与 APC 一起使用。

我遇到了这个编译错误:

这是我的 APC 声明:

这是我的 APC 定义:

这就是我制作 IcmpSendEcho2 的方式:

我以为 '(PIO_APC_Rountine) GotIt' 会这样做,因为我找到了这个,但显然我错过了一些东西。

如果您需要任何其他信息,请告诉我。

提前致谢。

0 投票
1 回答
1501 浏览

python - 没有收到所有 ICMP 超时消息:为什么?

我正在使用 Scapy 重放一些我更改 TTL 值的转储数据包。即使 TTL=1,我也得到了非常奇怪的结果。

当我彼此分开运行测试时间时,大约有 40% 到 95% 的数据包回复了 ICMP 超时消息。然后我可以递归地重放未应答的数据包,并且每次都或多或少地获得与以前相同百分比的已应答数据包。

这是为什么?

我一直在以 0.1 秒的间隔发送数据包。这应该没问题吧?我的超时值是10s,应该很保守。

这里有什么问题?

0 投票
1 回答
7673 浏览

c++ - Windows 套接字错误 10013

这是程序的代码,它应该发送一个简单的“ping”。我知道我可以使用IcmpSendEcho2()函数,但我决定这样做:

这就是问题所在。一切正常,直到它sendto()发挥作用。我收到一个 10013 错误代码表单WSAGetLastError(),这意味着WSAEACCES Permission denied
我以管理员权限启动了这个应用程序,所以我不知道为什么我不能使用这个套接字配置发送数据。

0 投票
1 回答
784 浏览

c# - TcpClient 超时 ICMP 端口不可达

我得到以下代码:

服务器立即发回一个 ICMP 端口不可达,但程序需要大约 30 秒才能超时并出现 10054 错误。

我关闭了防火墙,wireshark 也在捕获数据包,所以这不是 windows 配置问题。

如何让 TcpClient 识别端口无法访问的数据包?

0 投票
0 回答
85 浏览

c - icmp.c 检查过期的地方

kernel-3.0.26 code net/ipv6/icmp.c,在发送 ICMP 回复时,它会检查计时器是否到期。它应该检查路由器广告给出的值吗?我认为到期值存储在rt->rt6_expiresndisc.c第 1284 行)中。然后在发送 ICMP 回复时,它应该检查到期计时器,对吗?检查是在哪里进行的?请有人给我解释一下。

先感谢您。对不起,我的英语不好。

0 投票
3 回答
4557 浏览

size - ICMP 类型 11 数据包有效负载的大小

类型为 11 时,即超过时间,ICMP 数据包负载的大小是多少?由于它包含一个 IP 标头和生成 ICMP 消息的 IP 数据包有效负载的前 8 个字节,我认为它的大小是 20 + 8 = 28。

我正在重放一些 TTL=1 的常见用户流量。在我转储的 ICMP 消息中,我注意到:

  • UDP 数据包生成的所有 ICMP 数据包的有效负载大小为 28 字节
  • 所有由 TCP 数据包生成的数据包的有效负载大小为 40 字节

由于我需要通过比较这些字节来将 ICMP 超时消息与触发它们的数据包相匹配,因此这条信息是必不可少的,但我无法弄清楚为什么会发生这种情况。

0 投票
1 回答
1069 浏览

python - Scapy 中的错误行为

我使用 Scapy 的功能send发送数据包,这些数据包将在路由器上生成 ICMP 数据包,并将这些 ICMP 数据包转储为tcpdump,作为子进程启动。

然后,我将使用 scapy 的内置rdpcap函数将这些 ICMP 数据包读回我的程序。

好吧,事实证明rdpcap有时会搞砸一些事情,只要我想查看我捕获的数据包,它就会返回以下内容:

然后,我只需要rdpcap再次调用相同的参数,一切都会恢复正常:

这是一些错误,对吧?

编辑:好的,在我得到那个错误之前我做的一件事是以下,这可能不是太正统,但是当我伪造数据包时我不需要以太网层。如果我删除这两行,我不会收到任何此类错误:

我以前在其他地方做过这个,从来没有遇到过问题。这里发生了什么事?

0 投票
0 回答
555 浏览

java - 从 Java 应用程序测量 Pingtime 到主机

我正在寻找一种方法来测量对服务器列表的 ping 延迟时间。重要的是,尽可能精确地测量实际的数据包延迟,而不是 jvm 计算时间。

此处的答案已涵盖某些方面:如何从 Windows 执行真正的 Java ping?

测量 InetAddress.isReachable(timeout) 的时间我认为这不是一个选项,因为它对我需要 ping 的某些服务器不起作用。

到目前为止,我最接近的是使用 processbuilder,如上面链接中的答案所示。

我还找到了 jpcap 库:http ://netresearch.ics.uci.edu/kfujii/Jpcap/doc/download.html但原生化是有代价的。

0 投票
1 回答
1213 浏览

python - 如何在 Python 中为 ICMP 消息设置源地址?

我正在尝试更改ping 的这种实现,以便可以为消息设置不同的源地址。我想做的-S与原始 ping 的选项可以做的完全一样:

这当然有效,但我想用 Python 做同样的事情。