一般情况下,局域网里的终端比如本地服务器设置静态IP的好处是可以有效减少网络连接时间,原因是过程中省略了每次联网后从DHCP服务器获取IP地址的流程,缺点是容易引发IP地址的冲突,当然,还有操作层面的繁琐,如果想要切换静态IP地址,就得去网络连接设置中手动操作,本次我们使用Python3.10动态地修改电脑的静态IP地址。
获取多网卡配置
一个网卡对应一个静态IP地址,但机器上未必只有一个网卡,所以如果想动态切换,必须要指定网卡名称,Win系统中通过ipconfig命令来获取当前系统的网卡信息:
ipconfig
系统返回:
PS C:\Users\liuyue\h2102-a\videopro> ipconfig
Windows IP 配置
以太网适配器 以太网:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::a216:f22a:52a:3388%4
IPv4 地址 . . . . . . . . . . . . : 192.168.1.104
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.1.1
以太网适配器 以太网 2:
连接特定的 DNS 后缀 . . . . . . . :
IPv6 地址 . . . . . . . . . . . . : fdb2:2c26:f4e4:0:7703:1e08:e622:2f0
临时 IPv6 地址. . . . . . . . . . : fdb2:2c26:f4e4:0:717c:b59e:b6cd:51b2
本地链接 IPv6 地址. . . . . . . . : fe80::2645:f265:ad72:c751%16
IPv4 地址 . . . . . . . . . . . . : 192.168.0.118
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
以太网适配器 vEthernet (Default Switch):
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::3ece:9b38:2572:4e33%18
IPv4 地址 . . . . . . . . . . . . : 172.31.16.1
子网掩码 . . . . . . . . . . . . : 255.255.240.0
默认网关. . . . . . . . . . . . . :
如果想通过Python来获取网卡信息,则需要在脚本中运行ipconfig命令,构建change_ip.py脚本:
import os,re
class IpManage:
def __init__(self):
self.ip_list = self.get_ip()
def get_ip(self):
result = os.popen('ipconfig')
res = result.read()
resultlist = re.findall('''(?