发布一个新工具Ping,兼年终总结

这篇文章只是草稿,后面应该会有增减。

一年一年又一年,转眼就快到新年。

好长时间没有写日志了,也许是懒了,也许是事情太多,总之理由是可以找出一堆一堆又一堆的。回想一下设计模式系列已经很久没有更新了,记得当初是打算每个月写一篇的,汗颜啊。

写这篇日志有两个目的,一是最近写了个小工具,用来测试主机是否在线的;二是想对过去一年作一个简单的总结。

先来总结吧,这里只说好的,只说知识技能上的成长,不说坏的,也不说情感金钱之类的。当然不是没有坏的,相反,而是坏的实在太多了,不敢列,不想列,担心会抽自己几巴掌。

  1. 复习了TypeScript,PowerShell, Bash,Python,C++等编程语言,虽然说离开软件行业已近2年,但是你懂的,有一种习惯叫兴趣,也有一种工作方式叫痛并快乐着。下面分别简单说一下这几种语言:
    1. TypeScript是微软开发的面向对象的脚本语言,支持鼓励强类型编程,实现了ECMAScript 标准,可以轻松编译出Javascript代码,从而运行在Javascript引擎上。当下很多流行的UI框架都有推荐使用TypeScript作为开发语言,比如Angular 2, Vue, Dojo等,但是随着Javascript版本的不断更新,以及相关引擎的支持,似乎越来越不需要TypeScript了。
    2. PowerShell是微软开发的Windows下的Shell脚本语言,我个人认为它的最大一个特点是可以使用.Net Framework,并且它也拥有通常高级语言所包含的语法(它的语法也比Bat要优雅的多,站在我的角度我优先会使用PowerShell而不是Bat,除非环境有所限制),所以理论上它可以实现任意功能。
    3. Bash是很多Linux系统上的默认Shell环境,它拥有比较完整的编程语言语法系统。个人认为,如果想利用好Linux系统,简化繁琐的工作,那么Bash是必修的课程。
    4. Python,说起这个语言,就我个人而言很是曲折,最早接触它的时候,2.3版本才刚刚发布,谁曾想到现在它会这么火爆,拥有丰富的API、工具、框架。想拿高薪,你得会Python,毕竟在Big Data, Cloud, AI等领域它最为抢眼。
    5. C++,整个人生道路上,我学的第一门语言就是它(不是C,我直接自学的C++),虽然从来没有正式地使用它做过项目,但实事求是的讲,在后来整个工作学习的道路上,它不断的启发着我,这次因为工作的原因,又重新温习了一遍,感叹前人真是牛逼。
  2. PLC。我他么也没想到,以前一个搞软件的,会去学习PLC,只能解释成博爱吧。关于PLC,我顶多算入了个门,简单一句话,它还是挺有意思的。不过我想随着技术的不断发展,基于Linux等平台的高级语言编程才是大势,比如基于Andorid,Windows loT等,另外像西门子这么贵的PLC设备也终就会被Raspberry Pi这种小巧便宜的设备所取代。
  3. 英语。说到这个,虽然说到了痛点,但是比去年还是有了些进步,偶尔讲两句也可以。

好吧,总结就总结到这里,后面如果想起了别的再加上来。下面来说说最近写的一个小工具。

工具的名称叫Ping,顾名思义,和我们经常使用的命令Ping有着相似的功能,即发送ICMP数据包给指定主机,来侦测远端主机是否在线,判断与远端主机之间的网络连接状况等。这个工具的特别之处是可以批量侦测大量主机,结合多线程来快速诊断网络状况。并且该工具基于.Net  Core编写,所以能够跨平台运行,无论是Windows、Linux还是MacOS。下面的截图基于Debian 9.5 + .Net Core 2.1。

使用方法:

  1. 编辑一个任意文本文件,输入需要被侦测的远端主机,每行一个,每行3个参数。

    1. 第一个参数是可以是主机名,也可以是域名,也可以是IP地址。
    2. 第二个参数当数据包从本地发送出去后,等待多久如果没有收到来自目标主机的响应,那么就终止等待。
    3. 第三个参数发送多大的数据包到目标主机
  2. 运行程序,输入上面文本文件的路径
  3. 输出结果

    1. RoundTripTime,本机接收到来自目的主机所花的时间,单位毫秒,越小越好
    2. Status,成功还是其它原因
    3. Exception,异常信息

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *