热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

实用小工具之网络小闹钟

深圳这两天在下雷暴雨,一个星期不到,脆弱的长城宽带的交换机已经连续被雷劈坏了两回了。今天上午一打开电脑,发现没法上网。查了下路由器

  深圳这两天在下雷暴雨,一个星期不到,脆弱的长城宽带的交换机已经连续被雷劈坏了两回了。今天上午一打开电脑,发现没法上网。查了下路由器,发现提示WAN口未连接。简单的排除了下故障,发现很有可能是长城宽带的交换机又被雷劈了。

  又没法上网!无奈之下,只好去看书了。但一想,要是网络通了,我咋知道啊?挠了下脑袋,嘿嘿,咱可是程序员啊!用C#写个小程序,自动报警?费劲啊,噼里啪啦的得打开VS,中规中矩的敲一堆无用代码,编译,生成程序。。。No no no!咱怕麻烦,是懒人,嘿嘿,PowerShell上场吧!简单高效,能完成我的任务就行。简述下我的需求:网络正常后,需要让我知道!实现思路:ping一个网络上的远程主机,检测返回结果。若是可以到达,则播放录音文件通知我,否则,每隔一段时间间,继续尝试,直到用户手动停止执行或者网络正常为止。以下是简单实现, 

<#

 General description    

  This script is used to give a sound alarm when the network is repaired.  

 History    

  V1.0 stupidyzd 05252013 First draft

#>

cls

$ErrorActionPreference &#61; "stop"

 

# constants

$Global:playerPath &#61; "C:\&#96;"Program Files (x86)&#96;"\Baofeng\StormPlayer\StormPlayer.exe"

$Global:alarmAudioFileName &#61; "D:\Scripts\NetworkIsOK.wma"

$Global:remoteHost &#61; "www.baidu.com"

$Global:interval &#61; 10

 

# function definition area

function ShowMessage([string] $msgText)

{    

  $currentDateTimeString &#61; Get-Date -Format g    

   if($msgText.ToLower().IndexOf("error:") -ge 0)    

  {        

    Write-Host "$currentDateTimeString  $msgText"

       QuitPS

   }

    else

    {        

    Write-Host "$currentDateTimeString  $msgText"    

   }

}

function QuitPS()

{

    Exit

}

function PlayAudio([string] $audioFileName)

{    

  $playAudioCommand &#61; "$playerPath $audioFileName"    

  Invoke-Expression -Command $playAudioCommand

}

function CheckNetwork()

{    

   $cmd &#61; "ping $remoteHost"

     $networkOK &#61; $false    

  do    

  {

        ShowMessage "INFO: Trying to reach $remoteHost..."

        $commandResult &#61; &#64;(Invoke-Expression -Command $cmd) | ForEach-Object{

         if($_.IndexOf("TTL&#61;") -ge 0)

            {

                $networkOK &#61; $true

                break     

          }  

       }    

         Start-Sleep -Seconds $interval

    }while(-not $networkOK)

 

    while($true)  

   {   

      ShowMessage "INFO: Network is OK now!"

      PlayAudio -audioFileName $Global:alarmAudioFileName

      Start-Sleep -Seconds $interval   

  }

}

# main procedures

CheckNetwork

由于只是信手瞎写的一个小脚本&#xff0c;所以不是很规范&#xff0c;请同行不要见笑。下面就这个小脚本简单说两句。我主要是准备了一个自己的音频文件&#xff0c;并且借用了暴风影音来播放这个通知录音。脚本可以在Win8下面顺利执行(关于怎么去执行这个小脚本&#xff0c;后续博文会有提及这方面的知识)。下午2:14网络就通了。我顺利收到了消息 :)该博客也就由此而生了&#xff0c;以下是实图&#xff0c;

 

转:https://www.cnblogs.com/stupidyzd/archive/2013/05/27/ps1alarm.html



推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 本文介绍了最长上升子序列问题的一个变种解法,通过记录拐点的位置,将问题拆分为左右两个LIS问题。详细讲解了算法的实现过程,并给出了相应的代码。 ... [详细]
author-avatar
夏雨之唯美
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有