前两天宿舍管理员又贴出告示了:“15号,二楼又丢失一台笔记本电脑,再次请大家睡觉关好门。大家可长点心吧”。我去,这小偷也太张狂了吧。就整天盯着我们计算机系的宿舍不放。所以我准备通过写点小程序,让丢失的电脑可以找回来。大家也知道。干我们这行的,电脑比媳妇都亲,辛辛苦苦积累的几年的资料,可不想让小偷这么一个delete键给毁了。

 

  起先,我在微博上看到过一个***大锅通过写***的方式来找回自己丢失的电脑。但是这种方式有两点难题:一是,得做免杀(免杀就是将自己的***伪装起来,不被杀毒软甲发现,并且删除),麻烦 要是被杀了 计划全泡汤了 况且很多人自己不会做免杀(免杀所涉及到的技术面比较广。需要掌握汇编语言、逆向思维等)ps:其实我也不会)用别人的要是带有后门呢 你老开机运行自己都是别人的肉鸡(肉鸡就是,别人可以远程在你不知情的情况下控制你的电脑,做坏事。你的电脑,***的权限),所以我这两天根本就没往这方面想,因为我知道自己几斤几两。想了也没用。所以我想了一个简单的方法。基本上学过一点软件开发基础的人都能做到。(ps:我这种方法在实施的时候有忽略了一些作为程序员前期条件,也就是说很多时候存在于理想情况下,肯定有很多的不足和意外情况,方法不太完美,但毕竟我实验成功了。请大牛勿喷)。我这方法的总体思想就是在小偷开机的时候,连上网之后自动给我指定的邮件发送他上网的IP地址。当然了,在你没被偷,自己用的时候也会发送,咱谁也无法预料小偷什么时候来偷电脑。所以建议最好给这个程序申请一个专门的邮箱。Ok,下面我就来详细介绍一下我使用的方法。

 

      首先先写一个简单的web程序。学过一点java web的童鞋应该都接触过监听器一些基础知识。在 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理ServletContextEvent 事件的两个方法。一个是contextInitialized 方法,一个是contextDestroyed 方法。这里我们用到的就是contextInitialized 的方法。这个方法即为在web容器,这里我使用的是tomcat。也就说,当tomcat启动的时候。这个方法就会给执行。在这个方法里我们就可以写上发邮件的相关内容。具体代码如下:

 

public void contextInitialized(ServletContextEvent arg0) { System.out.println("init"); SimpleMail sm = new SimpleMail(); sm.setSubject("报告电脑所在位置"); InetAddress inet = null; try { inet = InetAddress.getLocalHost(); } catch (UnknownHostException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } String str = "当前登陆主机的ip=" + inet.getHostAddress(); // String str = ReadHtmlFile.readFile("这里填写你需要发送的本地文件路径"); sm.setContent(str); SimpleMailSender sms = new SimpleMailSender("xxx@qq.com", "csh8338281110"); try { Thread.currentThread().sleep(1000); sms.send("xxx@163.com", sm); System.out.println("执行完成11!!"); } catch (Exception e) { // e.printStackTrace(); try { Thread.currentThread().sleep(1000 * 5); sms.send("bzu901@163.com", sm); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }

     写到这里并没有完事大吉,因为你这只是写好了程序,但是并没有设置好开机自动启动服务啊。因为我们这个程序只有在tomcat启动的时候才会被执行。所以,下一步我们还有设置tomcat开机自动启动。这里我主要说一下免安装版的tomcat自动启动设置,因为安装版的直接在服务程序中设置就可以了。

1、设置环境变量 CATALINA_HOME ,值为 Tomcat安装目录:

 

2.找到tomcat中bin目录下的service.bat文件

打开此文件,在倒数第三行左右的那句输出
echo The service '%SERVICE_NAME%' has been installed.
这句是输出服务安装成功,在这之前加一句
sc config %SERVICE_NAME% start= auto

3、在Tomcat的bin目录下,打开 cmd 执行以下对应的命令:

service.bat install 

如果没有什么问题的话,你会看到如下界面

 

 

 

Ps:有的tomcat是阉割版的,没有service.bat这个文件。比如我的就是,那么你可以到网上去下载一个这个文件,或者直接在重新下载一个tomcat也行。

开机启动,查看邮箱:

这样,你把刚才写的那个简单的web程序发布到tomcat中。然后tomcat在开机自动启动的时候就会运行对应的程序代码,这样就可以给你的邮箱发送当前你的电脑的ip了。有了ip地址对于警方来说,抓小偷就是很轻松的事了。这里你还可以获得更多的相关信息。其他的信息你就可以随便添加了。

 
 

小小的ps:这种方法有很多的不足和未考虑的因素,仅供参考

大大大的ps:小偷不是苦逼的程序员的情况下有效