无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4349|回复: 6
打印 上一主题 下一主题

请教一个关于自动进行网络配置的批处理!

[复制链接]
跳转到指定楼层
1#
发表于 2007-6-9 10:41:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
网络的情况如下:   

1、宿舍楼申请了三条ADSL电话线分别连接三台路由器再连接三台集线器上网,就是说整栋楼有三个独立的小型局域网。
2、路由器没有开通DHCP功能。但是可以PING通的。
3、三台路由器(默认网关)的IP地址分别是192.168.0.1    192.168.1.1   192.168.0.100。
4、DNS均为:首选的:202.100.192.68  备用:202.100.199.8

我想用一个批处理实现为所有的电脑自动分配IP地址、设置默网关和DNS的功能,要求设置必须快捷准确,IP地址不能有冲突。
我自己写了一个,但是效率低,而且IP采用的是随机分配,这样就存在冲突的可能性!

[ 本帖最后由 woshixiguapi 于 2007-6-11 04:43 PM 编辑 ]
2#
发表于 2007-6-9 11:45:51 | 只看该作者
我自己编写的根据mac来设置计算机名、ip、子网掩码、dns、网关、关闭屏保、防火墙)的批处理,执行完毕后15秒自动重启动
全部是指定的,所以不会有重复的可能,下面是指定192.168.0.1为网关的批处理,不同的自己修改吧
同目录下要事先准备好ip.txt(每台机子的mac地址列表和指定它的ip)
范例如下,红色的为指定ip,黄色的为指定的计算机名字,蓝色的是工作组,绿色的是mac地址,注意后面有个空格,这个列表可以通过lansee这个程序来获得
ip.txt
192.168.16.101 |W01             |WORKGROUP       |00.19.21.ED.7B.E5 |
192.168.16.2 |W02             |WORKGROUP       |00.19.21.ED.80.8B |
192.168.16.3 |W03             |WORKGROUP       |00.19.21.ED.81.2D |
192.168.16.4 |W04             |WORKGROUP       |00.19.21.ED.7E.3F |
192.168.16.5 |W05             |WORKGROUP       |00.19.21.ED.83.31 |
192.168.16.6 |W06             |WORKGROUP       |00.19.21.ED.83.50 |
192.168.16.7 |W07             |WORKGROUP       |00.19.21.ED.81.D9 |
批处理如下,我一般把这两个文件放到gho文件的启动文件夹中,哈哈,全自动

  1. @echo off
  2. color 2e
  3. :findmac
  4. set mac=
  5. set 连接名=
  6. ipconfig /all >%temp%\wjh
  7. for /f "tokens=1,2,3,4,5,6,7,8,9,10,11 delims=: " %%i in ('findstr /i /c:"Physical Address" %temp%\wjh')  do set macy=%%s
  8. for /f "tokens=1,2,3 delims=: " %%i in ('find "Ethernet adapter" %temp%\wjh')  do set 连接名=%%k
  9. echo 当前机子的网卡物理地址为(%macy%)
  10. set mac=%macy:~0,2%.%macy:~3,2%.%macy:~6,2%.%macy:~9,2%.%macy:~12,2%.%macy:~15,2%
  11. echo 经过转换地址为(%mac%)
  12. set mask=255.255.255.0
  13. set dns1=202.100.192.68
  14. set dns2=202.100.199.8
  15. set gateway=192.168.0.1
  16. set linkname=%连接名:~0,-1%
  17. rem 不知道怎么搞的,就是在连接名后多一个空格,所以采用了%连接名:~0,-1%
  18. :jiancha
  19. set 程序运行目录=%cd%
  20. if exist ip.txt goto do
  21. cd /d %allusersprofile%
  22. cd "「开始」菜单\程序\启动"
  23. echo 当前目录为 %cd%
  24. if exist ip.txt goto do
  25. if not exist ip.txt  goto error

  26. :do
  27. For  /f "tokens=1,2,3,4 delims=| " %%i in (ip.txt)  do If "%mac%"=="%%l" set ip=%%i
  28. For  /f "tokens=1,2,3,4 delims=| " %%i in (ip.txt)  do If "%mac%"=="%%l" set ygname=%%j
  29. For  /f "tokens=1,2,3,4 delims=| " %%i in (ip.txt)  do If "%mac%"=="%%l" set wg=%%k
  30. echo ****************************************************************************
  31. echo 根据本机网卡的物理mac(介质访问控制Media Access Control)地址
  32. echo          ═══════════════════
  33. echo             当前 计算机名 为☆   %computername%
  34. echo          ───────────────────
  35. echo             计算机名字应该是☆   %ygname%         
  36. echo          ───────────────────
  37. echo            本机的本地连接名 ☆   (%linkname%)
  38. echo          ───────────────────
  39. echo            本机的 ip 应该是 ☆   %ip%
  40. echo          ───────────────────
  41. echo            本机的子网掩码是 ☆   %mask%
  42. echo          ───────────────────
  43. echo            网关的 ip 应该是 ☆   %gateway%
  44. echo          ───────────────────    ╭═══════════╮
  45. echo            主dns     设定为 ☆   202.103.224.68    ║程序作者 :  wjh6088   ║
  46. echo          ───────────────────    ║───────────║
  47. echo            备用dns   设定为 ☆   202.103.225.68    ║2007年5月  于来宾卫校 ║
  48. echo          ───────────────────    ╰═══════════╯
  49. echo            工作组      是   ☆   %wg%               
  50. echo          ═══════════════════
  51. if "%ip%" == ""  goto error
  52. echo 数秒后将按照此表格设置计算机......
  53. ping 127.0.0.1 -n 6 >%temp%\yscx.yscx.txt
  54. echo ══════════════════════════════════════
  55. echo 正在设置IP地址及子网掩码
  56. netsh interface ip set address name="%linkname%" source=static addr=%IP% mask=%MASK%
  57. echo IP地址及子网掩码设置完成
  58. echo ══════════════════════════════════════
  59. echo 正在设置网关地址
  60. netsh interface ip set address name="%linkname%" gateway=%GATEWAY% gwmetric=0
  61. echo 网关地址设置完成
  62. echo ══════════════════════════════════════
  63. echo 正在设置主DNS地址
  64. netsh interface ip set dns name="%linkname%" source=static addr=%DNS1% register=PRIMARY
  65. echo 主DNS地址设置完成
  66. echo ══════════════════════════════════════
  67. echo 正在设置第二DNS地址
  68. netsh interface ip add dns name="%linkname%" addr=%DNS2% index=2
  69. echo 第二DNS地址设置完成
  70. echo ══════════════════════════════════════
  71. wmic computersystem where Name="%computername%" call JoinDomainOrWorkgroup Name="%wg%"
  72. if %errorlevel%==0 goto _success
  73. echo 改变工作组不成功
  74. echo ══════════════════════════════════════
  75. :_success
  76. echo 已经成功改变工作组为 "%wg%".
  77. echo ══════════════════════════════════════
  78. echo 正在修改计算机名字为 %ygname%
  79. ::::创建注册表文件
  80. @echo Windows Registry Editor Version 5.00 >%temp%\ComputerName.reg
  81. @echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName] >>%temp%\ComputerName.reg
  82. @echo "ComputerName"="%ygname%"  >>%temp%\ComputerName.reg
  83. @echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >>%temp%\ComputerName.reg
  84. @echo "NV Hostname"="%ygName%"  >>%temp%\ComputerName.reg
  85. @echo "Hostname"="%ygName%"  >>%temp%\ComputerName.reg
  86. regedit /s %temp%\ComputerName.reg
  87. del %temp%\ComputerName.reg
  88. echo 成功修改计算机名为 %ygname%
  89. echo ══════════════════════════════════════
  90. echo 正在关闭xp防火墙
  91. net stop sharedaccess  >nul
  92. echo 成功关闭了xp防火墙
  93. echo ══════════════════════════════════════
  94. :关闭屏幕保护
  95. echo 正在关闭屏幕保护
  96. if exist %temp%\screensaver.reg  del %temp%\screensaver.reg
  97. echo REGEDIT4>>%temp%\screensaver.reg
  98. echo [HKEY_CURRENT_USER\Control Panel\Desktop]>>%temp%\screensaver.reg
  99. echo "SCRNSAVE.EXE"="">>%temp%\screensaver.reg
  100. regedit /s %temp%\screensaver.reg
  101. del %temp%\screensaver.reg
  102. echo 已经成功关闭屏幕保护
  103. echo ══════════════════════════════════════
  104. goto success
  105. :error
  106. echo ****************************************************************************
  107. echo 错误,没有发现ip.txt文件,或者在ip.txt中找不到本机的mac地址, 现在转为手动设置
  108. :shoudong
  109. if exist c:\netedit.reg  del c:\netedit.reg
  110. echo 当前计算机名字为%computername%
  111. set /p ygname=[如需更改请输入新计算机名]
  112. set wg=workgroup
  113. set /p wg=[请输入工作组名字,回车默认为workgroup]
  114. set ip1=192.168.
  115. set /p ip2=[请输入本机ip地址后2段 192.168.
  116. set IP=%ip1%%ip2%
  117. set MASK=255.255.255.0
  118. set /p mask=[请输入子网掩码,回车默认为255.255.255.0]
  119. set gateway2=
  120. set /p gateway2=[请输网关ip,现在设置为%ip1%
  121. set gateway=%ip1%%gateway2%
  122. set linkname=本地连接
  123. set /p linkname=[请输入本地连接的名字,回车默认为本地连接,现在设置为%linkname%
  124. goto do
  125. :success
  126. echo.
  127. echo.
  128. echo.
  129. echo.
  130. echo.
  131. echo.
  132. echo.
  133. echo.
  134. echo  ╭═════════════════════════════════════╮
  135. echo  ║     操作成功, 计算机名字将在重新启动后生效!                          ║
  136. echo 正在清理用过的文件
  137. del %程序运行目录%\ip.txt
  138. del "%allusersprofile%\「开始」菜单\程序\启动\ip.txt"
  139. echo 数秒后重新启动计算机......
  140. ping 127.0.0.1 -n 6 >%temp%\yscx.yscx.txt
  141. del %temp%\yscx.yscx.txt
  142. del "%allusersprofile%\「开始」菜单\程序\启动\根据mac*.bat"|del %程序运行目录%\根据mac*.bat|shutdown  -r -t 15
  143. :end
  144. exit
复制代码

[ 本帖最后由 wjh6088 于 2007-6-9 12:01 PM 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2007-6-10 01:17:18 | 只看该作者
我现在是有三个不同的网关,楼上的只是单个网关!
回复

使用道具 举报

4#
发表于 2007-6-10 11:14:40 | 只看该作者
举一反三啊
把网关部分改一下,就有3个不同的批处理了,按情况使用:L :L
回复

使用道具 举报

5#
 楼主| 发表于 2007-6-10 16:05:31 | 只看该作者
我这相批处理是给菜鸟用的,他们哪里知道网关是多少?
回复

使用道具 举报

6#
发表于 2011-7-12 14:52:54 | 只看该作者

网络映射器

请问各位大侠有没有办法把网络映射器也设置好?程序那里应该怎么写?望赐教。。。
回复

使用道具 举报

7#
发表于 2011-7-20 23:37:10 | 只看该作者
原帖由 woshixiguapi 于 2007-6-10 01:17 发表
我现在是有三个不同的网关,楼上的只是单个网关!


既然你的整栋楼有三个独立的小型局域网,三台路由器(默认网关)的IP地址都可设为192.168.0.1,因为是三个独立的小型局域网相互不会有IP冲突,不是就成单网关了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-28 12:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表