我是一个 Linux 人。我有一个非常具体的问题,我试图在 Windows 机器上解决,所以请原谅我在这里的无知。
问题(无法重新定义):我有一台具有 3 个 NIC 的 Windows 机器。每次启动时,我都需要一种方法来动态自动设置其 IP 地址。这台机器每次开机都会有不同的地址信息。机器在启动时将有一个由名称/值对组成的文件(即一个充满“=”条目的文件)。我需要使用从批处理文件运行的标准 Windows 命令提示符命令来执行所有这些任务。我没有 VB 或任何可用的东西。
最大的问题:我认为,如果 Windows 对其网络接口的命名具有确定性,这将容易得多。如果是,我可以解析这个文件并简单地设置,比如使用 netsh 设置“本地连接 2”的 IP 地址。不过,就目前而言,Windows 有时会改变它用于物理 NIC 的名称。那么今天的“本地连接2”可能明天就是“本地连接”。所以,我必须想办法在启动过程中通过使用 MAC 地址并找到相应的 NIC 来确定这些事情。如果没有 grep、awk 等,从 ipconfig 输出中获取这些信息变得越来越困难。
我尝试过/完成的事情: (1) 我通过本地组策略编辑器添加了一个 Windows 设置启动脚本,弄清楚了如何在 Windows 启动期间启动我的批处理文件。(2) 我已经弄清楚如何从批处理文件中解析我的名称/值对文件并获取令牌。(3) 我试过用arp命令设置ip映射。很明显,这只是将数据包正确地路由到接口。但是,一旦数据包到达接口,它们就会被丢弃,因为数据包是用于 NIC 不属于的网络的。这对我没有好处。我需要为网卡设置 IP 地址。
我当前的计划/我需要帮助:(1)解析我的名称/值对文件(2)在名称/值对文件中找到与mac地址对应的网卡名称(3)使用netsh设置这些卡的 ip 地址 (4) 全部从批处理文件中执行 (5) 尽量不要抱怨我没有使用 Linux 机器:-)
任何帮助是极大的赞赏。