这是以前在学校时破解共享上网所写的批处理代码,这个可能是我找的旧版本的了,当时是保密配方,刚找到EXE版本反编译出代码来,没时间检查它了,我记得我改过,新版的找不到了,毕业后根本没弄过了,代码更不熟悉了,但是这个比共享卫士好用。而且现在那个无线WIFI的发射器这么流行,还有金山那些软件商都纷纷提供软件版的共享上网的了,用不着这个老方法了吧。不过这个方法还是有不可比拟的地方,就是比WIFI的距离远,内网透传,这就是技术达到落地的效果,哈哈~~
@echo off
mode con cols=84 lines=22
title ---简易强大的共享上网设置程序--- QQ:938009139
color 79
:menu
cls
echo.
echo 建立配置共享上网 --由OPQ基于Win2003制作
echo ------------------------------------------------------------
echo [1] 按 1 键 开始建立本机共享上网服务
echo [2] 按 2 键 查看当前配置信息
echo [3] 按 3 键 添加共享接入用户
echo [4] 按 4 键 删除共享接入用户
echo [5] 按 5 键 停用共享上网服务
echo [6] 按 6 键 启用对32位Win7 系统支持
echo [7] 按 7 键 启用对32位Vista系统支持
echo [m] 按 m 键 --------返回菜单--------
echo.
SET Choice=
SET /P Choice= 请选择要进行的操作:
IF /I ‘%Choice:~0,1%‘==‘1‘ GOTO cmdvpn
IF /I ‘%Choice:~0,1%‘==‘2‘ GOTO showset
IF /I ‘%Choice:~0,1%‘==‘3‘ GOTO adduser
IF /I ‘%Choice:~0,1%‘==‘4‘ GOTO deluser
IF /I ‘%Choice:~0,1%‘==‘5‘ GOTO stopvpn
IF /I ‘%Choice:~0,1%‘==‘6‘ GOTO win7_32
IF /I ‘%Choice:~0,1%‘==‘7‘ GOTO vista
IF /I "%Choice%"=="m" GOTO menu
exit
:cmdvpn
@echo off
cls
echo.
echo ---------确保是管理员用户权限运行本程序,下面仔细阅读内容,按提示操作.---------
echo.
set Nic=本地连接
set Mask=255.255.255.0
echo 1.如果你可连网的网卡名字不叫[本地连接]而是[本地连接2]或[无线网络连接]之类的,
echo 请在下面光标处输入其名称,如:本地连接3,否则按回车键直接跳过!
set /p Nic=
echo -----------------------------------------------------------------------------------
echo 当前共享设置将选用名称为:%Nic% 的网卡! [此处如弄错误,请关闭本程序,重新打开]
echo -----------------------------------------------------------------------------------
echo.
echo 2.现在请停用(禁用)你的"%Nic%",停用(禁用)后返回本程序,按任意键将继续,按要求填好!
pause>nul
echo.
set /p localip=请输入当前分配你上网的IP地址:
set /p Mask=请输入你分配的IP地址的子网掩码: 255.255.255.0 (默认,即回车;如不是,请输入:
set /p Gway=请输入你分配IP地址的网关所在:
set /p Dns1=请输入适你当地的首选DNS地址:
set /p Dns2=请输入适你当地的次选DNS地址:
echo ------------------------------------------------------
echo 正在进行 %Nic% 的IP设置,请稍等...
echo. IP地址 = %localip%
echo. 子网掩码 = %Mask%
netsh interface ip set address name=%Nic% source=static addr=%localip% mask=%Mask% >nul
echo. 网关 = %Gway%
netsh interface ip set address name=%Nic% gateway=%Gway% gwmetric=1 >nul
echo. 首选DNS = %Dns1%
netsh interface ip set dns name=%Nic% source=static addr=%Dns1% register=PRIMARY >nul
echo. 备用DNS = %Dns2%
netsh interface ip add dns name=%Nic% addr=%Dns2% index=2 >nul
set Addr2=192.168.66.5
set Mask2=255.255.255.0
netsh interface ip add address %Nic% %Addr2% %Mask2%
cls
echo 现在请重新启用名为"%Nic%"的网卡,启后返回本程序,按任意键将会继续!
echo 启动或关闭配置时的影响服务...
sc config sharedaccess start= disabled
net stop "Windows Firewall/Internet Connection Sharing (ICS)"
net stop SharedAccess
sc config "Remote Procedure Call (RPC)" start= auto
net start "Remote Procedure Call (RPC)"
sc config RemoteRegistry start= auto
net start "RemoteRegistry"
sc config "RemoteAccess" start= auto
net start "RemoteAccess"
sc config "Workstation" start= auto
net start "Workstation"
net start "Computer Browser"
@set errorlevel=>nul
@cls
@echo --------请输入用户名回车:即创建拨号连接用户--------:
@set/p "vpnusername="
@echo --------请输入密码回车:即拨号连接用户的密码--------:
@set/p "vpnuserpass="
net user %vpnusername% %vpnuserpass% /add
if errorlevel=1 cls &&cls &&echo "用户可能已存在,创建不成功!" &&pause>nul
echo 为了安全该用户不能为tsinternetuser support_388945a0等
net localgroup users %vpnusername% /del
echo 因此为用户名添加授权拨入策略,以保系统权限安全。
netsh ras set user %vpnusername% permit
echo 设置静态地址池模式
netsh ras ip set addrassign pool
echo 设置静态池范围 ,要用标准的局域网地址,避免将来在访问internet时候地址转发错误。
netsh ras ip add range 192.168.66.6 192.168.66.88
echo 使用地址池的方式分配
netsh ras ip set addrassign method = pool
echo 开启TCP/IP转发,必须首先安装NAT
FOR /F "skip=3 tokens=3" %%i IN (‘@reg query "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v IPEnableRouter‘) do @if %%i NEQ 0x1 (@reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v IPEnableRouter /t REG_DWORD /d 1 /f)
echo 添加NAT协议支持
netsh routing ip nat install
echo 添加nat借口内部私有模式 [win2000中内部不容许在图形界面下添加]
netsh routing ip nat add interface name="内部" mode=private
echo 添加nat接口本地连接全转发
netsh routing ip nat add interface name="%Nic%" full
netsh routing ip igmp delete interface 内部
netsh routing ip igmp install
netsh routing ip igmp add interface 内部 igmpprototype=IGMPRTRV2 ifenabled=enable robustvar=2 startupquerycount=2 startupqueryinterval=31 genqueryinterval=125 genqueryresptime=10 lastmemquerycount=2 lastmemqueryinterval=1000 accnonrtralertpkts=YES
netsh routing ip igmp add interface name="%Nic%" igmpprototype=IGMPPROXY ifenabled=enable
echo 设置删除除了登陆信息记录外的ipsec、remoteaccess记录或警告日志..
@reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters /v ProhibitIPsec /t REG_DWORD /d 00000000 /f
@reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess\Parameters /v LoggingFlags /t REG_DWORD /d 00000000 /f
echo %Nic%的IP地址为 %localip%
echo 添加默认网关地址为 %Gway%的默认路由支持
route add 0.0.0.0 mask 0.0.0.0 %Gway%
echo 添加一个永久的路由表
route -p add 192.168.66.0 mask 255.255.255.0 %localip%
echo 关闭一些服务以保证网络安全
net stop Schedule
net stop CLIPBOOK
rem net stop Server
cls
echo 已经建立好共享上网接入:
echo ----------------------------------------------------------------------------------
echo 本机开设默认网关地址:192.168.66.5 分机接入可用的IP地址范围:192.168.66.6~88
echo 1.打开网络连接,右键“传入的连接”属性,
echo 2.在"虚拟专用网络"下"允许他人通过Internet或其他网络以"隧道操作"..."前打上勾,确定!
echo 分机设定好IP地址后用拨号连接:用户名%vpnusername%密码为 %vpnuserpass% 入虚拟专用网
echo ----------------------------------------------------------------------------------
pause>nul
goto menu
:showset
cls
@netsh interface show interface
@netsh ras ip show config
@netsh ras show use
@route print
pause >nul
goto menu
:adduser
@set errorlevel=>nul
@echo 请输入要创建的用户名:
@set/p "vpnusername="
@echo 请为用户设置一个密码:
@set/p "vpnuserpass="
net user %vpnusername% %vpnuserpass% /add
if errorlevel=1 cls &&echo MSGBox("用户可能已存在,创建不成功!")
netsh ras set user %vpnusername% permit
net user %vpnusername% %vpnuserpass%
pause >nul
goto menu
:deluser
@set errorlevel=>nul
@echo 请输入要删除的用户名:
@set/p "vpnusername="
net user %vpnusername% /del
if errorlevel=1 cls &&echo"用户可能已删除或权限不足,删除不成功!" && pause>nul
pause >nul
goto menu
:stopvpn
route -f
route delelte 0.0.0.0
net stop "RemoteAccess"
arp -d
echo 刷新本地缓冲区域名解释记录!
ipconfig /flushdns
echo 共享上网服务已停止!
pause >nul
goto menu
:win7_32
copy Win7_x64\ipmontr.dll %systemroot%\system32
copy Win7_x64\ippromon.dll %systemroot%\system32
netsh add helper ipmontr.dll || netsh delete helper ipmontr.dll && netsh add helper ipmontr.dll
netsh add helper ippromon.dll || netsh delete helper ippromon.dll && netsh add helper ippromon.dll
netsh routing ip nat install add interface name="%Nic%" mode=full
netsh routing ip nat install add interface name="内部" mode=private
echo.
echo 已使32位Win7系统支持共享上网!请再在菜单中选择"1"进行开启。
echo 64位Win7系统可能也已获得支持!(待测试)也可做为对Win2008R2的修复!
pause >nul
goto menu
:vista
copy Vista_x86\ipmontr.dll %systemroot%\system32
copy Vista_x86\ippromon.dll %systemroot%\system32
netsh add helper ipmontr.dll || netsh delete helper ipmontr.dll && netsh add helper ipmontr.dll
netsh add helper ippromon.dll || netsh delete helper ippromon.dll && netsh add helper ippromon.dll
echo.
echo 已使32位Vista系统支持共享上网!请再在菜单中选择"1"进行开启。
echo 64位Vista系统可能也已获得支持!(待测试) 也可做为对Win2003的修复!
pause >nul
goto menu
记得还有小一部分内容是要在服务器上设置的。
通过服务器系统的软ROUTE服务+NAT提供拨号共享上网(校园版)
原文地址:http://picker.blog.51cto.com/60843/1441604