乐鑫技术交流
直播中

陈伟

7年用户 1488经验值
私信 关注
[问答]

请问如何强制DHCP服务器以空网关和DNS地址进行响应?

我在 DHCP 服务器打开的情况下,在 AP 模式下在嵌入式设备中使用 ESP8266。 装有 Windows 7 的 PC 连接到 ESP8266,ESP8266为 PC 无线接口分配 IP、网关和 dns 地址。
但是 PC 通过另一个接口获得 Internet 连接,此分配通过将 Internet 请求路由到错误的网关和 DNS 来中断 Internet 连接。
一种解决方案可能是调整路由表指标,以便首先选择正确的路由。但是,用户或应用程序必须具有提升的权限才能执行此操作。

我可以使用 AT 命令强制 DHCP 服务器使用空网关和 dns 地址进行响应吗?如果没有 - 是否计划在将来的某个版本中添加此功能?我在互联网上看到过类似的问题。

回帖(1)

发生的方式

2024-7-16 17:40:10
要强制DHCP服务器以空网关和DNS地址进行响应,您可以按照以下步骤操作:

1. 首先,您需要修改ESP8266的固件以实现此功能。您可以使用Arduino IDE或其他支持ESP8266的IDE来修改固件。

2. 在固件中,找到DHCP服务器的配置部分。通常,这部分代码会设置IP地址、子网掩码、网关和DNS服务器地址。

3. 将网关和DNS服务器地址设置为空。这可以通过将它们设置为0.0.0.0来实现。例如:

```cpp
IPAddress netMsk(255, 255, 255, 0);
IPAddress gateway(0, 0, 0, 0); // 空网关
IPAddress dns(0, 0, 0, 0);     // 空DNS
```

4. 接下来,确保DHCP服务器在分配IP地址时不包括网关和DNS服务器地址。这可能需要修改DHCP响应数据包的构造方式。

5. 编译并上传修改后的固件到ESP8266。

6. 重启ESP8266,以便新的设置生效。

7. 连接您的PC到ESP8266,并检查DHCP服务器是否以空网关和DNS地址进行响应。

请注意,这种方法可能会导致连接到ESP8266的设备无法访问外部网络,因为它们没有有效的网关和DNS服务器。但是,如果PC通过另一个接口获得Internet连接,这应该不会影响其正常工作。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分