今日用Spring Boot开发了一个获取办公室公网IP的小工具,主要是为了方便图书部门同事远程登录图书服务器。该IP为电信动态IP,每隔两三天IP总是容易变动,有时节假日办公室没人办公无法获知IP,此时若能远程获取IP该多好呀! 为此,我特地花了两小时写了这个工具。
该工具的总体思路为:在办公室随便找一台24小时不关机的电脑,上传数据到服务端,服务端提供一查询接口。具体为:客户端工具 通过定时器任务每隔30秒钟通过http://ip.chinaz.com获取IP,存储到我们的阿里云服务器;服务端工具安装至阿里云服务器,通过Spring Boot接口从数据库中获取数据即可。
该工具的思路很简单,重点在于客户端和服务端的两个jar包需要随着windows 开机自动运行,此处自动运行采用的是winsw.exe工具. 它的下载地址:https://github.com/kohsuke/winsw/releases
注:将exe和xml文件一定改成相同名字,如下图所示:
重点,是配置文件,我的配置文件如下图所示:
<?xml version="1.0" encoding="UTF-8"?>
<service>
<id>iptools</id>
<name>iptools</name>
<description>To start my app as a service.</description>
<executable>C:\Program Files\Java\jdk1.8.0_111\bin\java.exe</executable>
<arguments>-jar ServerIp.jar</arguments>
</service>
执行服务,有很多种,此处就以winsw.exe本身为例:
注册服务:winsw.exe install
卸载服务:winsw.exe uninstall
当然还有windows自带的服务的安装与卸载,效果都是一样。
参数说明: name:服务名称; executable:java.exe的位置; arguments :启动运行参数。
特别注意:executable 这个参数为java.exe所在的位置;不像很多文档瞎写为JDK的位置,新远兄亲测了 都不行。(出现服务无法启动)
另外,我的阿里云服务器该配置文件不能出现中午注册,否则安装时提示字符串错误,所以我去掉了所有的中文注释。