gpt4 book ai didi

c - 回复 udp 数据包被阻止

转载 作者:行者123 更新时间:2023-11-30 15:49:35 27 4
gpt4 key购买 nike

我正在编写一个 C 程序来搜索本地网络上的 smb 共享并安装它们。为了获取找到的 smb 服务器的主机名,我向服务器发送了 udp nbns 数据包。数据包正确,服务器回复。我正在使用wireshark来检查这一点。我将我发送的数据包与 nbstat 发送的数据包进行了比较,并且还比较了服务器返回的数据包。除了 id 和校验和之外,它们是相同的。

当我使用 nbstat 发出请求时,回复数据包已正确收到,但对我自己的数据包的回复可能被防火墙阻止。收到服务器的回复后,客户端计算机向服务器发送 icmp“目的地不可达(端口不可达)”消息。我怀疑是我的防火墙发送了它。

这是wireshark的输出

没有。时间源目的地协议(protocol)长度信息
12 29.870065 192.168.1.245 192.168.1.21 NBNS 92 名称查询 NBSTAT *<00><00.......
13 29.870494 192.168.1.21 192.168.1.245 NBNS 253 名称查询响应 NBSTAT
14 29.870559 192.168.1.245 192.168.1.21 ICMP 281 目的地无法到达(端口无法到达)

我应该怎么做才能让回复通过?

最佳答案

您的程序是否监听 UDP 端口 137 以接收服务器回复?如果不是,那就解释了为什么您的主机发送 ICMP 数据包端口不可达。

如果您监听端口 137,请尝试在发送 NBNS 查询时将源端口配置为端口 137。这样防火墙现在应该让数据包进入此端口。

关于c - 回复 udp 数据包被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16188674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com