如何在不插网线启用网卡的TCP/IP协议 ping 通自己的IP

本文介绍如何在Windows系统中禁用媒体感知功能,以防在断开网络连接时导致TCP/IP协议被禁用,影响应用程序调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HUB没通电,或是机器后面的网线没插上的情况下,OS 会自动在任务栏上显示一个“网线断开”的图标,并且将该网卡的所有协议层退出,这时你PING网卡的IP将无回应。这个功能叫做网卡的“媒介探测(Media Sense)”,你需要关掉它。 

这样,即使网线断开,OS仍然会显示一个断开的图标,但网卡的协议仍然处于绑定状态,也就是说PING网卡的IP仍然能通。

为防止网络适配器检测链接状态,请执行以下步骤。

注意:NetBEUI 协议和 IPX 协议不支持媒体感知。

  1. 启动注册表编辑器。
  2. 找到以下注册表子项:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
  3. 将以下注册表项添加到
    Parameters
    子项:
    名称:DisableDHCPMediaSense
    数据类型:REG_DWORD(布尔型)
    值:1
    注意:此项控制媒体感知的行为。默认情况下,媒体感知事件触发 DHCP 客户端执行操作。例如,当发生连接事件时,客户端会尝试获取租约。当发生连接断开事件时,客户端可能会使接口和路由无效。如果您将该数值数据设置为 1,则 DHCP 客户端和非 DHCP 客户端会忽略媒体感知事件。
  4. 重新启动计算机。

注意:当媒体感知用于服务器群集环境时,Microsoft Windows Server 2003 支持媒体感知。但在默认情况下,媒体感知在基于 Windows Server 2003 的服务器群集中处于禁用状态,且 DisableDHCPMediaSense 注册表项无效。在 Windows Server 2003 Service Pack 1 (SP1) 中,引入了 DisableClusSvcMediaSense 注册表项。您可以使用该注册表项在基于 Windows Server 2003 的服务器群集的节点上启用媒体感知。DisableClusSvcMediaSense 注册表项的详细信息如下所示:

项:HKEY_LOCAL_MACHINE\Cluster\Parameters
名称:DisableClusSvcMediaSense
数据类型:REG_DWORD(布尔型)
默认值:0

默认情况下,DisableClusSvcMediaSense 项设置为 0。当该项设置为 0 时,媒体感知被禁用。如果将 DisableClusSvcMediaSense 项设置为 1,则可以使用 DisableDHCPMediaSense 项以启用媒体感知。此行为与 Microsoft Windows 2000 Server 群集环境的行为匹配。

 

当采用Windows   2000/XP/2003系统的局域网用户拔掉连接本机网卡的网线时,或该用户的网卡与局域网中的网络设备没有正常连接时,桌面上的“任务栏”中会显示“本地连接,网络电缆没有插好”的提示。为什么Windows系统能够自动检测出客户机与网络设备的连通情况呢?这是因为Windows   2000/XP/2003系统中内置了“媒体感知(Media   Sense)”功能。  
认清“媒体感知”功能  
  对于一般的局域网用户来说,“媒体感知”功能确实起到了非常重要的作用。当网卡或网线出现问题时,客户机不能与局域网中的网络设备正常连通,这时“媒体感知”功能就能立刻检测出问题,并发出警告,方便了大家对网络的故障的排查。  
  但大家在进行某些特殊的调试工作时,智能化的“媒体感知”功能反而会影响正常工作。  
  例如程序员使用便携设备(如笔记本电脑)调试某些TCP/IP应用程序,而TCP/IP程序在测试过程中需要脱离局域网环境,程序员需要拔掉测试机器上的网线。这时聪明的“媒体感知”功能就立刻检测出本机和局域网设备没有正常连通,接着就会禁用捆绑在网卡上的某些网络协议,其中就包括TCP/IP协议。由于TCP/IP协议被禁用了,这样该TCP/IP应用程序就无法进行调试了,因此大家在某些特殊情况下必须禁用Windows系统的“媒体感知”功能。   
  提示:当网卡与网络设备没有正常连通时,“媒体感知”功能不会禁用所有的网络协议,如NetBEUI和IPX/SPX协议就不受影响,本机的环路测试也可正常进行。  
禁用“媒体感知”功能  
  如何为TCP/IP协议禁用Windows系统内置的“媒体感知”功能呢?通过修改注册表就能实现。下面笔者以Windows   XP系统为例,介绍实现“禁用”的方法。  
  进入注册表编辑器,展开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters”项,新建一个“DisableDHCPMediaSense”  
  ,数据类型为“DWORD值”,将该值设置为“1”。重新启动Windows   XP系统后,就禁用了“媒体感知”功能。  
  现在,即使拔掉网线,TCP/IP协议也不会被禁用,TCP/IP应用程序的调试工作可以照常进行。要想恢复“媒体感知”功能,也很简单,只要将注册表中   “DisableDHCPMediaSense”的值修改为“0”,或者删除“DisableDHCPMediaSense”,重新启动系统即可。

要成功地将lwip网络协议栈移植到基于RT-Thread的STM32F103开发板上,并TCP/IP协议进行信,可以遵循以下几个步骤: 参考资源链接:[STM32F103 RT_Thread lwip移植教程:从配置到ping](https://wenku.youkuaiyun.com/doc/2710bwjgct?spm=1055.2569.3001.10343) 1. **环境准备与配置**:首先确保你的开发环境已经安装了RT-Thread操作系统和相应的开发工具链。按照《STM32F103 RT_Thread lwip移植教程:从配置到ping》进行环境准备,包括下载并安装RT-Thread源码,以及配置RT-Thread的env工具。 2. **工程配置**:过RT-Thread的env工具选择STM32F10x的工程模板,启用lwip网络组件和设备虚拟文件系统。在`rtconfig.h`文件中配置lwip相关的宏定义,如`RT_LWIP`:`1`,确保lwip相关代码被正确编译。 3. **添加文件与驱动配置**:在工程中添加lwip源码和DM9000网卡驱动文件。注意检查并解决可能出现的编译错误,例如由于GPIO驱动冲突。根据实际情况,可能需要屏蔽或修改原有的GPIO驱动代码,以适应DM9000网卡。 4. **GPIO引脚与中断配置**:调整`rt_hw_dm9000_init()`、`RCC_Configuration()`、`NVIC_Configuration()`、`GPIO_Configuration()`和`FSMC_Configuration()`等函数中的GPIO引脚配置,确保DM9000网卡正确工作。 5. **初始化lwip和socket**:在RT-Thread中创建一个初始化任务来启动lwip网络栈。这包括对lwip的API进行适当的配置,以便在应用程序中调用socket API等网络函数,并确保lwip的初始化代码位于用户任务中。 6. **TCP/IP信测试**:完成以上步骤后,进行网络信测试。确保开发板与电脑网线连接,并配置在同一子网内。执行ping测试,验证是否能够从电脑ping开发板的IP地址(例如***.***.*.*)。如果ping测试成功,则说明lwip已经成功移植并可以进行TCP/IP信。 在上述过程中,每个环节都需要仔细检查和调试。《STM32F103 RT_Thread lwip移植教程:从配置到ping》将为你提供详细的操作指导和实用的代码示例,有助于你顺利完成整个移植和配置过程。 为了深入理解lwip在STM32F103上的移植和使用,建议在完成基本的ping测试后,进一步学习如何使用lwip提供的API实现HTTP客户端、TCP服务器和UDP信等高级功能。《STM32F103 RT_Thread lwip移植教程:从配置到ping》虽然提供了从配置到基础ping的完整过程,但关于更高级的网络信实现,可能需要进一步阅读lwip的官方文档和更多的实战案例。 参考资源链接:[STM32F103 RT_Thread lwip移植教程:从配置到ping](https://wenku.youkuaiyun.com/doc/2710bwjgct?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值