标题: 請教如何由設定好的文本文件中提取IP,MAC資料並作綁定?(已解
[打印本页]
作者: evanpp
时间: 2006-11-6 01:52
标题: 請教如何由設定好的文本文件中提取IP,MAC資料並作綁定?(已解
小弟的構想是先於IPMAC.CFG文件中設定好電腦名稱.IP.MAC資料,格式為:
A001 192.168.0.1 00-00-00-00-00-01
A002 192.168.0.2 00-00-00-00-00-02
......
然後以電腦名稱為判斷依據執行arp -s %IP% %MAC%
例如在名稱為A001的電腦上便會執行 arp -s 192.168.0.1 00-00-00-00-00-01的指令作綁定,請教如此需求下要如何以批處理文件來達成?
小弟不才. 爬了一個晚上文弄得頭昏眼花仍不知如何達成@_@
===============================================
以解決~沒想到如此簡單= =
[
Last edited by evanpp on 2006-11-5 at 05:10 PM ]
作者: namejm
时间: 2006-11-6 05:24
如果已经解决,不妨把代码发出来,可以给新手一个学习代码的机会。
作者: zerostudy
时间: 2006-11-6 07:32
@echo off
for /f "tokens=1,2,3" %%a in (ipmac.cfg) do (
if "%computername%"=="%%a" arp -s %%b %%c
)
电脑名要大写.这个好像行的了.楼主是如何写的.发来看看.
作者: evanpp
时间: 2006-11-7 12:11
看到zerostudy簡潔的代碼讓小弟有點慚愧.....
不過據小弟測試的結果雖然可以正確讀取但似乎無法寫入arp tables??
以 arp -a 指令並未看到由 ipmac.cfg 所導入的資訊
以下是小弟冗長的代碼...
@echo off
if exist pcname.txt del pcname.txt
@echo %COMPUTERNAME% >pcname.txt
for /f %%C in (pcname.txt) do set pcname=%%C
if exist Computer.txt del Computer.txt
find "%pcname%" \\server\game$\Config.cfg >Computer.txt
for /f "skip=2 tokens=2" %%I in (Computer.txt) do set ip=%%I
for /f "skip=2 tokens=3" %%M in (Computer.txt) do set mac=%%M
arp -d
arp -s %IP% %Mac%
del Computer.txt pcname.txt
exit
作者: honhaizh
时间: 2006-11-16 20:26
学习一下
作者: newaifi
时间: 2006-11-17 02:00
以下是前段时间写的一段代码。LZ可以拿去参考。带自动分配识别网关 分配IP DNS等功能。使用前请编辑 IP.ax文件。
***************************************************************
Quote: |
- @cls
- @echo off
- @color 2f&@Title 计算机IP设置程序 v1.0
- @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- @echo ※请输入您要定义的计算机名称. ※
- @echo ※ ※
- @echo ※ (例:PC-01;User001;) ※
- @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- Set /p User=""
- @cls
- Set NetMask=255.255.255.0
- Set DNS1=61.153.177.196
- Set DNS2=61.153.177.197
- rem 如果您的DNS地址不是以上所示,请自行更改.
- Set Aidi=192.168
- IF Exist Name.ax Del Name.ax
- Find /i "%User%" ip.ax >>Name.ax
- For /f "skip=2 tokens=2 delims==\" %%A in (Name.ax) Do Set aidi3=%%A
- For /f "tokens=1-2 delims=:/" %%c in (ip.ax) do (
- @echo %%c|find /i "Gateway">nul&&Set Gateway=%%d
- @echo %%c|find /i "%User%">nul&&Goto :Gate
- )
- Goto :eof
- :Gate
- @echo %Gateway%>Temp.ax
- For /f "tokens=3 delims=./" %%e in (Temp.ax) do Set aidi2=%%e
- @ipconfig /all >ipconfig.ax
- @if exist name.pak del name.pak
- @find "Ethernet adapter" ipconfig.ax>>name.pak
- @for /f "skip=2 tokens=3,4 delims=: " %%A in (name.pak) do set Name=%%A %%B
- @cls
- @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- @echo ※您的计算机名称是 "%User%" ※
- @echo ※您的IP地址是 "%aidi%.%aidi2%.%aidi3%" ※
- @echo ※您的子网掩码是 "%NetMask%" ※
- @echo ※您的网关地址是 "%GateWay%" ※
- @echo ※您的DNS地址分配为 "%DNS1%,%DNS2%" ※
- @echo ※ 当前网卡: "%Name%" ※
- @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- @echo ※ 确认无误后请按任意键执行修改操作.否则请停止该程序. ※
- @pause >log.pak
- @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- @echo ※ ※
- @echo ※ 程序正在执行操作,请稍候....... ※
- @echo ※ ※
- @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- Reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %User% /f >log.pak
- @netsh interface ip set address "%Name%" static %aidi%.%aidi2%.%aidi3% %NetMask% %Gateway% 1 >log.pak
- @netsh interface ip set dns "%Name%" static %DNS1% >log.pak
- @netsh interface ip add dns "%Name%" %DNS2% >log.pak
- @cls
- @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- @echo ※ 恭喜您!修改成功了. ※
- @echo ※ ※
- @echo ※ 该程序由韩和编写制作.您可以传播本程序,但请保留本版权信息! ※
- @echo ※ ※
- @echo ※ 按任意键退出程序 ※
- @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- @pause >log.pak
- @if exist name.pak del name.pak
- @if exist ipconfig.ax del ipconfig.ax
- @if exist Name.ax del Name.ax
- @if exist log.pak del log.pak
- @if exist temp.ax del temp.ax
韩和发表于: 2006-11-16 13:02 |
|
[
Last edited by newaifi on 2006-11-17 at 02:02 AM ]
作者: newaifi
时间: 2006-11-17 02:08
似乎跑题了.. 呵呵...
这个好像才是... 带自动识别本机IP地址和网关地址的.. 你要做的其实就是打开本程序.
************************************************************
Quote: |
- @echo off&title arp绑定工具
- @if exist ipconfig.txt del ipconfig.txt
- @ipconfig /all >ipconfig.txt
- @if exist arp.txt del arp.txt
- @arp.exe -a > arp.txt
- @if exist phyaddr.txt del phyaddr.txt
- @find "Physical Address" ipconfig.txt >phyaddr.txt
- @if exist ipaddr.txt del ipaddr.txt
- @find "IP Address" ipconfig.txt >ipaddr.txt
- @for /f "skip=2 tokens=15" %%I in (ipaddr.txt) do set IPAddress=%%I
- @for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set strMac=%%M
- @arp.exe -d
- @arp.exe -s %IPAddress% %strMac%
- @if exist GateWay.txt del gateway.txt
- @find /i "Default Gateway" ipconfig.txt >>gateway.txt
- @for /f "skip=2 tokens=13" %%X in (GateWay.txt) do set GateWay=%%X
- @if exist mac.txt del mac.txt
- @find "%GateWay%" arp.txt > mac.txt
- @for /f "skip=2 tokens=2" %%Z in (mac.txt) do set Mac=%%Z
- @arp.exe -s %GateWay% %Mac%
- @if exist mac.txt del mac.txt
- @if exist arp.txt del arp.txt
- @if exist GateWay.txt del gateway.txt
- @if exist ipconfig.txt del ipconfig.txt
- @if exist phyaddr.txt del phyaddr.txt
- @if exist ipaddr.txt del ipaddr.txt
- @if exist %Windir%\RunOne.bat del %Windir%\RunOne.bat
- @cls
- @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- @echo ※ 你的本地连接IP: %IPAddress% ※
- @echo ※ 你的网卡MAC地址: %strMac% ※
- @echo ※ 你的网关IP地址: %GateWay% ※
- @echo ※ 你的网关MAC地址: %MAC% ※
- @echo ※ ※
- @echo ※ 按任意键继续 ※
- @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
- @pause > log.txt
- @cls
- @color 2f
- @echo ┌┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐
- @echo ┆ ━ 本地Mac及网关地址已经绑定完毕. ━ ┆
- @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
- @echo ┆ ┆
- @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
- @echo ┆ ━ 本程序由韩和编写,你可以任意传播此程序.但请保留此版权信息.谢谢. ━ ┆
- @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
- @echo ┆ ┆
- @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
- @echo ┆ ━ 作者联系方式:newaifi@gmail.com QQ:9026573 ━ ┆
- @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
- @echo ┆ 按任意键退出 ┆
- @echo ┕┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘
- @pause >>log.txt
- @if exist log.txt del log.txt
韩和发表于: 2006-11-16 13:12 |
|
作者: hxuan999
时间: 2006-11-23 03:10
zerostudy兄写的就不错.