Board logo

标题: 用批处理修改dns???? [打印本页]

作者: sscss     时间: 2008-8-23 10:35    标题: 用批处理修改dns????

谁帮我编一个批处理,可以从
港 ns1.netvigator.com 205.252.144.228

澳门 vassun2.macau.ctm.net 202.175.3.8

深圳 ns.shenzhen.gd.cn 202.96.134.133
202.96.154.8
202.96.154.15

北京 ns.bta.net.cn 202.96.0.133
ns.spt.net.cn 202.96.199.133
ns.cn.net 202.97.16.195
202.106.0.20
202.106.148.1
202.106.196.115

广东 ns.guangzhou.gd.cn 202.96.128.143
dns.guangzhou.gd.cn 202.96.128.68

上海 ns.sta.net.cn 202.96.199.132
202.96.199.133
202.96.209.5
202.96.209.133

湖北武汉: 202.103.24.68
202.103.0.117

浙江 dns.zj.cninfo.net 202.96.102.3
202.96.96.68
202.96.104.18

陕西 ns.snnic.com 202.100.13.11

西安: 202.100.4.15
202.100.0.68

天津 ns.tpt.net.cn 202.99.96.68

辽宁 ns.dcb.ln.cn 202.96.75.68
202.96.75.64
202.96.64.68
202.96.69.38
202.96.86.18
202.96.86.24

江苏 pub.jsinfo.net 202.102.29.3
202.102.13.141
202.102.24.35
这么多的dns中随机选出两个,并把电脑上的dns换掉,换完提示成功,不行了就提示失败。运行完了并自动删除这个批处理。怎么写?
作者: Climbing     时间: 2008-8-24 10:03

::GetRandom2line.cmd
@echo off & setlocal enabledelayedexpansion
set n=0
set /a n1="%random% %% 9" + 1
set /a n2="%random% %% 9" + 1

for /f %%i in (arp.txt) do ( set /a n+=1 && echo !n!
        if !n! equ %n1% echo set ip1=%%i
        if !n! equ %n2% echo set ip2=%%i)
arp.txt内容如下:
  75.40.16.13           00-50-8b-fc-b1-d7     dynamic   
  75.40.16.17           00-0b-cd-c5-78-1a     dynamic   
  75.40.16.224          00-14-5e-19-c0-0d     dynamic   
  75.40.16.251          00-04-38-8a-3e-00     dynamic   
  75.40.16.252          00-04-dc-46-e7-80     dynamic   
  75.40.16.253          00-e0-fc-86-4e-f1     dynamic   
  75.40.21.5            00-0b-cd-c5-7b-d1     dynamic   
  75.40.22.44           00-60-97-05-46-3f     dynamic   
  192.168.168.254       00-50-da-8e-37-ba     dynamic   

运行结果如下:
第一次:
1
2
3
4
5
6
set ip1=75.40.16.253
7
8
9
set ip2=192.168.168.254

第二次:
1
2
set ip1=75.40.16.17
3
4
5
6
7
set ip2=75.40.21.5
8
9

第三次:
1
set ip1=75.40.16.13
2
set ip2=75.40.16.17
3
4
5
6
7
8
9

实现了从文本文件中任意取两行的功能,剩下的就是用netsh命令来设置dns了,这应该比较简单了。
set conn="本地连接"
netsh interface ip set dns name=%conn% source=static addr=%ip1% register=PRIMARY
netsh interface ip add dns name=%conn% addr=%ip2% index=2

删除自己:del /f /q %0