如何检测网络中断, 并自动重启网卡
2010-08-22 18:16
344 查看
本人比较穷,住的是平民窟。所以,要和别人共享网络。很多不厚道的人喜欢用arp 病毒攻击。害的我的网络不是很稳定,经常会断网。断网后,必须,重启网卡网络才能恢复。
一来重启网卡麻烦,每次断网了都要手动重启一下,二来,晚上挂机下载电影,经常下个半个小时,网络就断了,害我白开一晚上电脑。
对window操作系统,我的确是不是很精通,所以,我就换成linux, 这样,写个shell脚本自动检查网络,然后恢复网络。可是linux 也是令人伤心那,好点的下载软件都没有,那个快车,1.0版本的,下载像个鸵鸟一样,太慢了。迅雷,根本就没有。
于是,我听说window 也有一个 shell 而且,还叫做powershell。vista 和 window 7 好像是自带这个shell的。xp估计要安装一下,去google一下就可以了。
观察了一下,这个shell,是基于.NET的。功能特别的强大,有兴趣的可以去研究一下它的语言参考。哥学了1个小时,终于,基本的东西学会了,也就很容易写我的重置网卡的脚本了。
代码
#重置网络:当检查到网络问题以后
#以管理员运行 powershell ,然后 Set-ExecutionPolicy unrestricted
#
do
{
$getway = Get-WmiObject -Class Win32_PingStatus -Filter "Address='192.168.1.1'" -ComputerName . | Where-Object {$_.StatusCode -eq 0};
if ($getway -eq $null)
{
sleep 1;
#重试,防止ping本身发生错误。
$getway = Get-WmiObject -Class Win32_PingStatus -Filter "Address='192.168.1.1'" -ComputerName . | Where-Object {$_.StatusCode -eq 0};
}
if ($getway -eq $null)
{
$adaptor = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*82567LM*"};
$adaptor.Disable();
sleep 5;
$adaptor.Enable();
echo "waiting net work ok ...";
sleep 10; #等待网络修复好,一般10s修复不好,就要重置一下了。
echo "reset adaptor";
}
sleep 2;
echo "net work is ok , sleep 2 second.";
} while(1)
然后,以管理员身份打开powershell ,运行 Set-ExecutionPolicy unrestricted 命令
再运行上面的脚本,就可以了。你就可以放心的挂机。
一来重启网卡麻烦,每次断网了都要手动重启一下,二来,晚上挂机下载电影,经常下个半个小时,网络就断了,害我白开一晚上电脑。
对window操作系统,我的确是不是很精通,所以,我就换成linux, 这样,写个shell脚本自动检查网络,然后恢复网络。可是linux 也是令人伤心那,好点的下载软件都没有,那个快车,1.0版本的,下载像个鸵鸟一样,太慢了。迅雷,根本就没有。
于是,我听说window 也有一个 shell 而且,还叫做powershell。vista 和 window 7 好像是自带这个shell的。xp估计要安装一下,去google一下就可以了。
观察了一下,这个shell,是基于.NET的。功能特别的强大,有兴趣的可以去研究一下它的语言参考。哥学了1个小时,终于,基本的东西学会了,也就很容易写我的重置网卡的脚本了。
代码
#重置网络:当检查到网络问题以后
#以管理员运行 powershell ,然后 Set-ExecutionPolicy unrestricted
#
do
{
$getway = Get-WmiObject -Class Win32_PingStatus -Filter "Address='192.168.1.1'" -ComputerName . | Where-Object {$_.StatusCode -eq 0};
if ($getway -eq $null)
{
sleep 1;
#重试,防止ping本身发生错误。
$getway = Get-WmiObject -Class Win32_PingStatus -Filter "Address='192.168.1.1'" -ComputerName . | Where-Object {$_.StatusCode -eq 0};
}
if ($getway -eq $null)
{
$adaptor = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*82567LM*"};
$adaptor.Disable();
sleep 5;
$adaptor.Enable();
echo "waiting net work ok ...";
sleep 10; #等待网络修复好,一般10s修复不好,就要重置一下了。
echo "reset adaptor";
}
sleep 2;
echo "net work is ok , sleep 2 second.";
} while(1)
然后,以管理员身份打开powershell ,运行 Set-ExecutionPolicy unrestricted 命令
再运行上面的脚本,就可以了。你就可以放心的挂机。
相关文章推荐
- 如何检测网络中断, 并自动重启网卡
- Fedora/centos Linux如何设置网卡自动获取网络地址
- Linux 如何重启网络、禁用网卡
- Fedora Linux如何设置网卡自动获取网络地址
- 多网卡时如何使用源地址ping目的地址,检测网络连通性
- windows主机dos(cmd)命令检查网卡网络自动重启网卡
- 网络不通时自动重启网卡的脚本
- 批处理检测网络连通禁用启用网卡重启电脑
- Fedora Linux如何设置网卡自动获取网络地址
- IIS网站和程序池如何自动检测重启,SqlServer服务如何自动检测并重启
- 如何使win2003服务器自动定时重启的图文教程
- 检测tomcat服务状态,并能自动重启的代码
- 如何检测网络端口是否被占用
- shell检查网络出现异常、僵尸进程、内存过低后,自动重启
- 自动检测iOS网络
- 自动检测iOS网络并可跳转至设置界面设置网络
- 自动检测iOS网络(使用监听)
- IOS-自动检测iOS网络并可跳转至设置界面设置网络
- LINUX下如何重启动网络服务
- 如何实现软件自动重启