一般情况下,局域网里的终端比如本地服务器设置静态IP的好处是可以有效减少网络连接时间,原因是过程中省略了每次联网后从DHCP服务器获取IP地址的流程,缺点是容易引发IP地址的冲突,当然,还有操作层面的繁琐,如果想要切换静态IP地址,就得去网络连接设置中手动操作,本次我们使用Python3.10动态地修改电脑的静态IP地址。
一个网卡对应一个静态IP地址,但机器上未必只有一个网卡,所以如果想动态切换,必须要指定网卡名称,Win系统中通过ipconfig命令来获取当前系统的网卡信息:
系统返回:
如果想通过Python来获取网卡信息,则需要在脚本中运行ipconfig命令,构建change_ip.py脚本:
这里通过os模块的popen方法来运行ipconfig命令,随后再使用正则来匹配网卡名称,最后将匹配到的网卡列表赋值给实例属性,程序返回:
至此,三块网卡的名称就获取到了。
接下来就是通过Python脚本来动态切换指定网卡的静态IP地址了,Windows系统通过netsh命令来指定IP地址:
这里name参数是网卡名称,后来三个地址分别代表静态IP地址,子网掩码以及网关地址。
这里将第一块网卡的静态IP地址设置为192.168.201.137,子网掩码是255.255.248.0,网关地址为192.168.200.1。
随后在Windows的网络连接设置中进行查看:
发现已经设置好了,随后再手动修改为自动获得IP地址选项。
下面通过Python脚本进行设置:
这里添加一个实例方法来设置ip地址,同样使用popen方法来运行命令,随后进行调用:
这里将第一块网卡的IP地址进行指定操作。
完整代码: