作者:Wwashington AT smth bbs
时间:2004/10/16
前言:欢迎转载,但是您必须保留原文所有信息,包括作者和时间。
一、起源:
因为家里有台 PC 的主板很老了,Pen 3 时代的,部分 PCI 槽会
失灵,引起一些设备例如网卡找不到,那当然是换一个 PCI 槽啦。
但是,如果你原来的机器设置了固定 IP,换槽后就出问题啦。固
定 IP 在做 DNS 和 WINS 服务器的时候是必要的,必须唯一。
例如原来的 IP 是 192.168.0.20,网卡是 3C905B-TX。换了 PCI
槽后网卡变成 3C905B-TX#2,设置 IP 为 192.168.0.20 的时候,
系统会提示说此 IP 已经分配给 3C905B-TX,要求你到高级对话
框里输入新 IP。虽然这只是一个警告,但是毕竟看着不爽啊。
二、尝试:
既然原来的 IP 分配给了 3C905B-TX,那我们到安全方式下查看
所有的设备(包括历史设备),然后删除不就行了吗?可惜的是,
因为这个设备物理上已经不存在(从原来的 PCI 槽拔掉了),所
以删除失败。一般人会想,大不了重装系统。但这太累了吧?
那么,是不是没有简便的办法继续用原来的 IP 呢?换 IP 的话
之前安装好的 MS DNS 或者 BIND 9.3 岂不是要重新配置?亏本,
还是继续修改 IP。这个破 IP,删不掉改了你总可以吧。。。
三、解决:
WinXp 下,运行 Regedit,找到 HKEY_LOCAL_MACHINE\SYSTEM\,
鼠标点一下作为搜索起点,找原来的 IP,输入:192.168.0.20,
只有 IPAddress 那栏是需要改的,改成你根本不想用的就行了。
其他内容例如 NameServer是其他的系统配置,不应修改。
现在鼠标右击 IPAddress,选“修改”或者“修改二进位数据”,
直接双击等于是“修改”,弹出一个窗口叫做“编辑多字符串”。
应该会找到六个地方,都是 ControlSetxxx 下的 Tcpip 界面,
例如:Services\xxx\Tcpip 和 Services\Tcpip\Parameters\
Interfaces\xxx ,全部都改。下面是 ControlSet001 的样板。
——————————————————–
ControlSet001\Services\{7EBB10AB-319C-4518-B32B-7D3B390CD0C4}\
Parameters\Tcpip\IPAddress
ControlSet001\Services\Tcpip\Parameters\Interfaces\
{7EBB10AB-319C-4518-B32B-7D3B390CD0C4}\IPAddress
——————————————————–
Win2k 下,查找的方法同上,但是右键只能选“修改”,等价于
直接双击目标。弹出窗口叫“编辑二进制数值”,修改方法同上。
四、结果:
现在你给换了 PCI 槽的网卡设置 IP,除了你刚才改动后的那个
历史 IP(Legacy IP,直译是遗产 IP,搞笑),只要是合法 IP
就能用,包括你原来用的 IP,现在它已经排除在“黑名单”外。
所以,我们不更换 IP,避免重新设置系统的目的达到了。
五、原理:
其实原理很简单,设置 IP 的时候系统去查其他网络界面的地址,
包括历史 IP(被拔出网卡的 IP),列入黑名单。你想重新使用
这个 IP 的话,要么是删除黑名单(失败),要么就修改黑名单。
事实证明,不论是软件开发还是系统维护,思维方式是最重要的。
六、后记:
写这篇文章的目的,一是跟青蛙网友分享心得,二是想发点牢骚。
最近看到不少公司招人都强调相同经验,我觉得好象在找一些能
不断重复同一动作的机器。世界在变,市场在变,技术在变,只
有思维能经常变通,才能跟得上形势,否则公司死了还莫名其妙。
要说点啥就在这吧