通过python修改本地ip
2022/1/12 22:03:56
本文主要是介绍通过python修改本地ip,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
写在前面,
1 对于个人公司需要固定ip,而回家需要用到家里的ip,
2对于公司it人员,每台电脑都需要设置ip,,尤其批量的时候,这个作为it的自己知道
3运维人员,可以通过ip测试哪些ip可以用,哪些不可以用
准备
拥戴wmi库通过pip install wmi安装
代码
由于比较时间紧,没写界面,只能黑窗口操作,侯琼会补上
# -*- coding: utf-8 -*-
import
os
import
random
import
re
from
time
import
sleep
from
wmi
import
WMI
#随机修改指定ip段的本机ip
class
updateIP:
def
__init__(
self
):
self
.wmiService
=
WMI()
#获取到本地有网卡信息
self
.colNicConfigs
=
self
.wmiService.Win32_NetworkAdapterConfiguration(IPEnabled
=
True
)
#print self.colNicConfigs[0]
def
getAdapter(
self
):
flag
=
0
#遍历所有网卡,找到要修改的那个,这里我是用原ip的第一段正则出来的
for
obj
in
self
.colNicConfigs:
ip
=
re.findall(
"10.\d+.\d+.\d+"
, obj.IPAddress[
0
])
if
len
(ip) >
0
:
return
flag
else
:
flag
=
flag
+
1
def
runSet(
self
):
adapter
=
self
.colNicConfigs[
self
.getAdapter()]
'''
#检测ip是否在线,不可用,需登录
while True:
ip2 = random.choice(['216', '217'])
ip3 = random.randint(1, 254)
ip4 = random.randint(1, 254)
newIP = '10.%s.%s.%s' % (ip2, ip3, ip4)
if self.pingIP(newIP):
break
'''
#随机选择了ip的第二段
ip2
=
random.choice([
'216'
,
'217'
])
ip3
=
random.randint(
1
,
254
)
#随机生成第三段和第二段的值
ip4
=
random.randint(
1
,
254
)
newIP
=
'10.%s.%s.%s'
%
(ip2, ip3, ip4)
arrIPAddresses
=
[newIP]
#设置新的ip
arrSubnetMasks
=
[
'255.248.0.0'
]
#子网掩码
arrDefaultGateways
=
[
'10.223.255.254'
]
#网关
arrGatewayCostMetrics
=
[
1
]
#这里要设置成1,代表非自动选择
arrDNSServers
=
[
'211.137.191.26'
]
#dns服务器
#开始执行修改ip、子网掩码、网关
ipRes
=
adapter.EnableStatic(IPAddress
=
arrIPAddresses, SubnetMask
=
arrSubnetMasks)
if
ipRes[
0
]
=
=
0
:
print
u
'\ttip:设置IP成功'
print
u
'\t当前ip:%s'
%
newIP
else
:
if
ipRes[
0
]
=
=
1
:
print
u
'\ttip:设置IP成功,需要重启计算机!'
else
:
print
u
'\ttip:修改IP失败: IP设置发生错误'
return
False
#开始执行修改dns
wayRes
=
adapter.SetGateways(DefaultIPGateway
=
arrDefaultGateways, GatewayCostMetric
=
arrGatewayCostMetrics)
if
wayRes[
0
]
=
=
0
:
print
u
'\ttip:设置网关成功'
else
:
print
u
'\ttip:修改网关失败: 网关设置发生错误'
return
False
dnsRes
=
adapter.SetDNSServerSearchOrder(DNSServerSearchOrder
=
arrDNSServers)
if
dnsRes[
0
]
=
=
0
:
print
u
'\ttip:设置DNS成功,等待3秒刷新缓存'
sleep(
3
)
#刷新DNS缓存使DNS生效
os.system(
'ipconfig /flushdns'
)
else
:
print
u
'\ttip:修改DNS失败: DNS设置发生错误'
return
False
'''
//ping某ip看是否可以通
def pingIP(self, ip):
res = os.popen('ping -n 2 -w 1 %s' % ip).read() #内容返回到res
res = res.decode('gbk')
if u'请求超时' in res: #注意乱码编码问题
return False
else:
return True
'''
if
__name__
=
=
'__main__'
:
update
=
updateIP()
update.runSet()
input
()
这篇关于通过python修改本地ip的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01Python编程基础知识
- 2024-11-01Python编程基础
- 2024-10-31Python基础入门:理解变量与数据类型
- 2024-10-30Python股票自动化交易资料详解与实战指南
- 2024-10-30Python入行:新手必读的Python编程入门指南
- 2024-10-30Python入行:初学者必备的编程指南
- 2024-10-30Python编程入门指南
- 2024-10-30Python量化交易学习:新手入门指南
- 2024-10-30Python股票自动化交易实战入门教程
- 2024-10-29Python股票自动化交易教程:新手入门指南