BAT 网卡抓取以及设置IP
1.简介:
此脚本可抓取本机的所有网卡信息,设置对应网卡的动态及静态IP地址
2.实现效果:
3.相关代码:
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
::netsh interface ip set address "LAN" dhcp
::netsh interface ip set dns "LAN" dhcp
::netsh interface ip set address "LAN" static 192.168.1.175 255.255.255.0 192.168.1.1
::netsh interface ip set dns "LAN" static 192.168.1.1
::netsh interface show interface
@echo off & setlocal enabledelayedexpansion
echo. & echo 正在抓取网卡名称……
set m=0
for /f "tokens=1* delims=," %%a in ('Getmac /v /nh /fo csv') do (
set /a m+=1
set "name!m!=%%a"
set "name=%name:~1,-1%"
)
echo. & echo 1:!name1! & echo 2:!name2! & echo 3:!name3! & echo 4:!name4! & echo 5:!name5! & echo 6:!name6! & echo 7:!name7! & echo 8:!name8! & echo 9:!name9! & echo 10:!name10!
set /p "Select_Card=选择需要设置的网卡序号:"
echo.
if "%Select_Card%" == "1" ( set card=!name1! ) else (
if "%Select_Card%" == "2" ( set card=!name2! ) else (
if "%Select_Card%" == "3" ( set card=!name3! ) else (
if "%Select_Card%" == "4" ( set card=!name4! ) else (
if "%Select_Card%" == "5" ( set card=!name5! )
if "%Select_Card%" == "6" ( set card=!name6! )
if "%Select_Card%" == "7" ( set card=!name7! )
if "%Select_Card%" == "8" ( set card=!name8! )
if "%Select_Card%" == "9" ( set card=!name9! )
if "%Select_Card%" == "10" ( set card=!name10! ) else ( echo. & echo 未键入任何参数! & pause>nul & cls & goto :Select_Card )))))
rem echo. & echo 选择网卡:%card%
rem 强制获取管理员权限
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
rem ::设置变量
rem set NAME="以太网"
set NAME=%card%
echo 网络设置:
echo 1.设置静态IP
echo 2.设置动态IP
echo 3.退出
echo 4.获取网卡mac地址
set /p operate=
if %operate%==1 goto 1
if %operate%==2 goto 2
if %operate%==3 goto 3
if %operate%==4 goto 4
:1
echo 正在设置静态IP,请稍等...
rem ::可以根据你的需要更改
set /p ADDR=请输入IP地址:
set /p MASK=请输入子网掩码:
set /p GATEWAY=请输入网关:
netsh interface ipv4 set address %NAME% static %ADDR% %MASK% %GATEWAY%
set /p DNS1=请输入主DNS:
if "%DNS1%"=="" (echo DNS1为空) else netsh interface ipv4 set dns %NAME% static %DNS1% validate=no
set /p DNS2=请输入备用DNS:
if "%DNS2%"=="" (echo DNS2为空) else (netsh interface ipv4 add dns %NAME% %DNS2% validate=no)
echo **********已设置为静态IP***********
::%ADDR%
::%MASK%
::%GATEWAY%
::%DNS1%
::%DNS2%
pause
goto 3
:2
echo 正在设置动态IP,请稍等...
echo 正在从DHCP自动获取IP地址...
netsh interface ip set address %NAME% dhcp
echo 正在从DHCP自动获取DNS地址...
netsh interface ip set dns %NAME% dhcp
echo **********已设置为动态IP地址***********
pause
goto 3
:3
exit
:4
for /f "skip=1 tokens=1 delims= " %%a in ('getmac') do set mac=%%~a
::如果输出的mac地址要以空格为分割符的内容,请把%mac%换成%mac:-= %
(echo %mac%)>C:\Users\clay\Desktop\test
pause