Board logo

标题: 請教如何由設定好的文本文件中提取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文件。

***************************************************************



  1. @cls
  2. @echo off
  3. @color 2f&@Title 计算机IP设置程序 v1.0
  4. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  5. @echo ※请输入您要定义的计算机名称. ※
  6. @echo ※ ※
  7. @echo(例:PC-01;User001;)
  8. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  9. Set /p User=""
  10. @cls

  11. Set NetMask=255.255.255.0
  12. Set DNS1=61.153.177.196
  13. Set DNS2=61.153.177.197
  14. rem 如果您的DNS地址不是以上所示,请自行更改.

  15. Set Aidi=192.168

  16. IF Exist Name.ax Del Name.ax
  17. Find /i "%User%" ip.ax >>Name.ax
  18. For /f "skip=2 tokens=2 delims==\" %%A in (Name.ax) Do Set aidi3=%%A

  19. For /f "tokens=1-2 delims=:/" %%c in (ip.ax) do (
  20. @echo %%c|find /i "Gateway">nul&&Set Gateway=%%d
  21. @echo %%c|find /i "%User%">nul&&Goto :Gate
  22. )
  23. Goto :eof
  24. :Gate
  25. @echo %Gateway%>Temp.ax
  26. For /f "tokens=3 delims=./" %%e in (Temp.ax) do Set aidi2=%%e

  27. @ipconfig /all >ipconfig.ax
  28. @if exist name.pak del name.pak
  29. @find "Ethernet adapter" ipconfig.ax>>name.pak
  30. @for /f "skip=2 tokens=3,4 delims=: " %%A in (name.pak) do set Name=%%A %%B
  31. @cls

  32. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  33. @echo ※您的计算机名称是 "%User%"
  34. @echo ※您的IP地址是 "%aidi%.%aidi2%.%aidi3%"
  35. @echo ※您的子网掩码是 "%NetMask%"
  36. @echo ※您的网关地址是 "%GateWay%"
  37. @echo ※您的DNS地址分配为 "%DNS1%,%DNS2%"
  38. @echo ※ 当前网卡: "%Name%"
  39. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

  40. @echo ※ 确认无误后请按任意键执行修改操作.否则请停止该程序. ※
  41. @pause >log.pak

  42. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  43. @echo ※ ※
  44. @echo ※ 程序正在执行操作,请稍候....... ※
  45. @echo ※ ※
  46. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

  47. Reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %User% /f >log.pak
  48. @netsh interface ip set address "%Name%" static %aidi%.%aidi2%.%aidi3% %NetMask% %Gateway% 1 >log.pak
  49. @netsh interface ip set dns "%Name%" static %DNS1% >log.pak
  50. @netsh interface ip add dns "%Name%" %DNS2% >log.pak
  51. @cls

  52. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  53. @echo ※ 恭喜您!修改成功了. ※
  54. @echo ※ ※
  55. @echo ※ 该程序由韩和编写制作.您可以传播本程序,但请保留本版权信息!
  56. @echo ※ ※
  57. @echo ※ 按任意键退出程序 ※
  58. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  59. @pause >log.pak
  60. @if exist name.pak del name.pak
  61. @if exist ipconfig.ax del ipconfig.ax
  62. @if exist Name.ax del Name.ax
  63. @if exist log.pak del log.pak
  64. @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地址和网关地址的.. 你要做的其实就是打开本程序.

************************************************************


  1. @echo off&title arp绑定工具
  2. @if exist ipconfig.txt del ipconfig.txt
  3. @ipconfig /all >ipconfig.txt
  4. @if exist arp.txt del arp.txt
  5. @arp.exe -a > arp.txt
  6. @if exist phyaddr.txt del phyaddr.txt
  7. @find "Physical Address" ipconfig.txt >phyaddr.txt
  8. @if exist ipaddr.txt del ipaddr.txt
  9. @find "IP Address" ipconfig.txt >ipaddr.txt
  10. @for /f "skip=2 tokens=15" %%I in (ipaddr.txt) do set IPAddress=%%I
  11. @for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set strMac=%%M
  12. @arp.exe -d
  13. @arp.exe -s %IPAddress% %strMac%

  14. @if exist GateWay.txt del gateway.txt
  15. @find /i "Default Gateway" ipconfig.txt >>gateway.txt
  16. @for /f "skip=2 tokens=13" %%X in (GateWay.txt) do set GateWay=%%X

  17. @if exist mac.txt del mac.txt
  18. @find "%GateWay%" arp.txt > mac.txt
  19. @for /f "skip=2 tokens=2" %%Z in (mac.txt) do set Mac=%%Z
  20. @arp.exe -s %GateWay% %Mac%

  21. @if exist mac.txt del mac.txt
  22. @if exist arp.txt del arp.txt
  23. @if exist GateWay.txt del gateway.txt
  24. @if exist ipconfig.txt del ipconfig.txt
  25. @if exist phyaddr.txt del phyaddr.txt
  26. @if exist ipaddr.txt del ipaddr.txt
  27. @if exist %Windir%\RunOne.bat del %Windir%\RunOne.bat
  28. @cls
  29. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  30. @echo ※ 你的本地连接IP: %IPAddress%
  31. @echo ※ 你的网卡MAC地址: %strMac%
  32. @echo ※ 你的网关IP地址: %GateWay%
  33. @echo ※ 你的网关MAC地址: %MAC%
  34. @echo ※ ※
  35. @echo ※ 按任意键继续 ※
  36. @echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
  37. @pause > log.txt
  38. @cls
  39. @color 2f
  40. @echo ┌┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┐
  41. @echo ┆ ━ 本地Mac及网关地址已经绑定完毕. ━ ┆
  42. @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
  43. @echo ┆ ┆
  44. @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
  45. @echo ┆ ━ 本程序由韩和编写,你可以任意传播此程序.但请保留此版权信息.谢谢. ━ ┆
  46. @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
  47. @echo ┆ ┆
  48. @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
  49. @echo ┆ ━ 作者联系方式:newaifi@gmail.com QQ:9026573 ━ ┆
  50. @echo ┆ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ ┆
  51. @echo ┆ 按任意键退出 ┆
  52. @echo ┕┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┘
  53. @pause >>log.txt
  54. @if exist log.txt del log.txt
韩和发表于: 2006-11-16 13:12

作者: hxuan999     时间: 2006-11-23 03:10
zerostudy兄写的就不错.