热门标签 | 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开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
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社区 版权所有