Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python3.10动态修改Windows系统(win10/win11)本地IP地址(静态IP)

Python3.10动态修改Windows系统(win10/win11)本地IP地址(静态IP)

作者头像
用户9127725
发布于 2023-05-11 02:36:20
发布于 2023-05-11 02:36:20
87802
代码可运行
举报
运行总次数:2
代码可运行

  一般情况下,局域网里的终端比如本地服务器设置静态IP的好处是可以有效减少网络连接时间,原因是过程中省略了每次联网后从DHCP服务器获取IP地址的流程,缺点是容易引发IP地址的冲突,当然,还有操作层面的繁琐,如果想要切换静态IP地址,就得去网络连接设置中手动操作,本次我们使用Python3.10动态地修改电脑的静态IP地址。     获取多网卡配置

    一个网卡对应一个静态IP地址,但机器上未必只有一个网卡,所以如果想动态切换,必须要指定网卡名称,Win系统中通过ipconfig命令来获取当前系统的网卡信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ipconfig

    系统返回:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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('''(?<=以太网适配器 ).*?(?=:)|(?<=无线局域网适配器 ).*?(?=:)''', res)

        print(resultlist)

        return resultlist

if __name__ == '__main__':
    
    IpManage()

    这里通过os模块的popen方法来运行ipconfig命令,随后再使用正则来匹配网卡名称,最后将匹配到的网卡列表赋值给实例属性,程序返回:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
['以太网', '以太网 2', 'vEthernet (Default Switch)']
[Finished in 394ms]

    至此,三块网卡的名称就获取到了。

    动态切换静态IP

    接下来就是通过Python脚本来动态切换指定网卡的静态IP地址了,Windows系统通过netsh命令来指定IP地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
netsh interface ip set address name=以太网 static 192.168.201.137 255.255.248.0 192.168.200.1

    这里name参数是网卡名称,后来三个地址分别代表静态IP地址,子网掩码以及网关地址。

    这里将第一块网卡的静态IP地址设置为192.168.201.137,子网掩码是255.255.248.0,网关地址为192.168.200.1。

    随后在Windows的网络连接设置中进行查看:

  发现已经设置好了,随后再手动修改为自动获得IP地址选项。

    下面通过Python脚本进行设置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def set_ip(self,name,ip="192.168.201.137",mask="255.255.248.0",gateway="192.168.200.1"):

        result = os.popen(f"netsh interface ip set address name={name} static {ip} {mask} {gateway}")
        res = result.read()

        print(res)

    这里添加一个实例方法来设置ip地址,同样使用popen方法来运行命令,随后进行调用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if __name__ == '__main__':
    
    im = IpManage()

    im.set_ip(im.ip_list[0])

    这里将第一块网卡的IP地址进行指定操作。

    完整代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os,re

class IpManage:

    def __init__(self):

        self.ip_list = self.get_ip()


    def set_ip(self,name,ip="192.168.201.137",mask="255.255.248.0",gateway="192.168.200.1"):

        result = os.popen(f"netsh interface ip set address name={name} static {ip} {mask} {gateway}")
        res = result.read()



    def get_ip(self):


        result = os.popen('ipconfig')
        res = result.read()

        resultlist = re.findall('''(?<=以太网适配器 ).*?(?=:)|(?<=无线局域网适配器 ).*?(?=:)''', res)

        print(resultlist)

        return resultlist

if __name__ == '__main__':
    
    im = IpManage()

    im.set_ip(im.ip_list[0])

    结语

    藉此,我们就可以通过Python3.10动态地配置本地网卡的静态IP地址,也可以理解为是一种Python自动化流程,静态IP地址可以让IP地址语义化,对于数据中心、网站、银行的结算端口等往往需要静态IP,与此同时,也省却了手动配置静态IP的繁琐过程。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python调用Windows的cmd命
os模块调用CMD命令有两种方式:os.popen(),os.system() 都是用当前进程来调用。
py3study
2020/01/07
3K0
Python31 Socket2
上图中在cmd里也使用ipconfig命令,但是可以看到的是显示的内容比通过python显示的内容要多,这是因为我们设置接收长度为1024,所以client一次最多只能接收1024,但实际内容数据超过了1024。 剩余的内容当前已经被缓存到缓冲区了(buffer)。
py3study
2020/01/13
7950
Windows 中如何配置静态 IP 地址?
是山河呀
2025/03/08
9580
一文胜千言的DHCP的讲解以及DHCP服务器的配置
后来发生了什么?没错,去请求了AP,也就是去请求了无线路由器,AP去找相关的策略。如果是DHCP的话,就请求DHCP服务器。然后你才会得到一个临时的地址。最终才可以上网了。
手撕代码八百里
2020/07/29
2.7K0
一文胜千言的DHCP的讲解以及DHCP服务器的配置
linux网络配置(自己总结的)vmware10中ubuntu设置与windows连网(图解)
1 在windows中使用ipconfig查看windows和vmware虚拟机ip设置情况,具体如下: 无线局域网适配器 Wi-Fi:(此次用无线网络,也可以用宽度等)    连接特定的 DNS 后缀 . . . . . . . :    本地链接 IPv6 地址. . . . . . . . : fe80::6588:931a:5ad8:e6ac%12    IPv4 地址 . . . . . . . . . . . . : 192.168.1.100    子网掩码  . . . .
闵开慧
2018/03/30
2.2K0
linux网络配置(自己总结的)vmware10中ubuntu设置与windows连网(图解)
VM虚拟机配置动态ip和静态ip访问
设置/etc/sysconfig/network-scripts/目录下的文件 ifcfg-ens33
共饮一杯无
2023/05/08
1.5K0
VM虚拟机配置动态ip和静态ip访问
Python调用系统命令的六种方法
作为胶水语言,Python可以很方便的执行系统命令,Python3中常用的执行操作系统命令有os.system()、os.popen()、subprocess.popen()、subprocess.call()、subprocess.run()、subprocess.getstatusoutput()六种方法。
吾非同
2020/12/07
4.2K0
Python调用系统命令的六种方法
socket编程进阶
1、   动态导入模块 第一种方法(python解释器自己内部用的): 上图是我程序的目录结构 下面代码是动态导入模块3.py的源码: 1 #AUTHOR:FAN 2 lib_dir = __impo
coders
2018/01/04
1.9K0
socket编程进阶
BAT 脚本技术-利用bat批处理脚本静态指定ip地址、自动获取ip地址设置
利用 bat 设置 ip ,跟我们直接在网络和共享中心设置的 ip 地址是一样的。 静态指定 ip 地址设置:【脚本需要用管理员权限来运行。】
小蓝枣
2020/09/23
3.7K0
如何在虚拟机中配置静态IP,以解决在NAT模式下的网络连接问题?
虚拟机是一种常见的技术,可以在计算机上模拟一个完整的操作系统和应用程序环境,来运行不同的操作系统和软件。在实际的开发和测试工作中,经常需要使用虚拟机来模拟特定的环境,并进行相关的测试和开发工作。而在虚拟机中,网络连接问题是使用过程中最常见的问题之一。本文将详细介绍如何在虚拟机中配置静态IP,以解决在NAT模式下的网络连接问题。
网络技术联盟站
2023/06/05
2.1K0
如何更改电脑的IP地址和DNS服务器?
(以下设置都建立在网络连通的情况,如未联网,也可以设置,比如两台电脑没有路由器的情况下组建局域网,需要自己指定IP的时候,图标会有变化)
简单并不简单
2019/07/05
21.5K0
问题解决:配置静态IP
这里就要分情况了,要看你有么有“以太网”,或者说是“本地连接”,如果没有,那就不用继续这一趴了,直接划到下面故障解决部分吧。
看、未来
2021/09/18
1.3K0
免费获得静态IP资源实操方法
今日与大家分享不同的获取固定IP资源的方法,我会用简单的方式解释清楚,让你可以轻松上手,享受更好的网络服务。
华科云商小徐
2023/08/16
8400
Centos7基础之配置静态IP地址
手动修改配置文件 ,设置对应网口的 IP 等信息。配置文件路径/etc/sysconfig/network-scripts/* 手动修改配置文件 ,设置对应网口的 IP 等信息。配置文件路径 /etc/sysconfig/network-scripts/* 最小设置示例 文件名对应网口名,CentOS 8 默认配置文件 [Linux]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="static" BROADCA
入门笔记
2022/06/02
4.1K0
webstorm配置本机IP使手机能打开pc端界面
最近项目使用原生html开发,虽然webstorm自带localhost的访问,但是手机端并不能直接这样写地址,所以需要配置本机IP地址的访问,以便在手机端也能看到h5页面的效果,避免未知的bug问题。
用户10106350
2022/10/28
1K0
webstorm配置本机IP使手机能打开pc端界面
Android 连接服务器java.net.ConnectException: Failed to connect to XXX
第一种:把ip地址:127.0.0.1或者localhost替换成10.0.2.2,重新启动,确认是否能正常调用
小码匠
2022/08/08
2.8K0
CentOS7 网络配置超详细ip、网关设置
点击NAT设置,点击查看DHCP设置只修改蓝色圈内,和并记住ip、子网掩码、起始IP地址、结束IP地址(后面设置ip会用到)
全栈程序员站长
2022/07/01
25.5K0
CentOS7 网络配置超详细ip、网关设置
网络配置信息查看命令一览表
描述:查看路由设置与路由跟踪,用户发出的数据包经过多个网关、路由器传送到目的地,目标的主机回应此数据包,将响应数据包,返回完成用户和网上主机的交互。
全栈工程师修炼指南
2022/09/29
3.8K0
网络配置信息查看命令一览表
centos7 vmware(静态IP)
点击更改设置,进入下图界面,选中VMnet8,取消勾选使用本地DHCP服务将IP地址分配给虚拟机
全栈程序员站长
2022/07/28
3540
centos7 vmware(静态IP)
搞它!!!Linux系统上DHCP服务器的配置(理论加实验,分分钟搞定!!!)
传统的手工配置网络参数需要每个用户都手动配置IP地址、掩码、网关、DNS等多个参数 这样就会存在一些问题
不吃小白菜
2020/09/03
12.3K0
搞它!!!Linux系统上DHCP服务器的配置(理论加实验,分分钟搞定!!!)
相关推荐
python调用Windows的cmd命
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验