在产品的使用中我们一般都要设置一个配置环节,这个环节可以设定主机的IP地址等信息,但是这样配置的话使得我们的产品用起来效果不是很好,因此我想到了实现局域网IP扫描的功能,IP局域网扫描是指定IP网段获取IP地址信息的方法,在加上PING命令来处理实现,检查该设备是否在线。
局域网ip搜索工具扫描设备的简单Java实现图一
代码很简单,主要浏览就是获取主机名,然后检查该设备是否可用,如果可用,那么我们的设备是在线的,如果不可用,那说明以前登陆过,现在无法登陆,然后可以根据主机名来实现自动配置的效果。
具体代码
public static void main(String[] args) {
try {
//设置IP地址网段
String ips = "192.168.2.";
String ip;
InetAddress addip;
//遍历IP地址
for (int i = 1; i < 255; i++) {
ip = ips + i;
addip = InetAddress.getByName(ip);
//获取登录过的设备
if (!ip.equals(addip.getHostName())) {
//检查设备是否在线,其中1000ms指定的是超时时间
boolean status = InetAddress.getByName(addip.getHostName()).isReachable(1000); // 当返回值是true时,说明host是可用的,false则不可。
System.out.println("IP地址为:" + ip + "\t\t设备名称为: " + addip.getHostName() + "\t\t是否可用: " + (status ? "可用" : "不可用"));
}
}
} catch (java.io.IOException uhe) {
System.err.println("Unable to find: " + uhe.getLocalizedMessage());
}
}
局域网ip搜索工具扫描设备的简单Java实现图二
实现效果
IP地址为:192.168.2.1 设备名称为: phicomm.me 是否可用: 可用
IP地址为:192.168.2.103 设备名称为: yunos-609150f1f6a4a718.lan 是否可用: 不可用
IP地址为:192.168.2.124 设备名称为: tao-mac.lan 是否可用: 可用
IP地址为:192.168.2.149 设备名称为: android-2bd63cc5913f1868.lan 是否可用: 不可用
IP地址为:192.168.2.183 设备名称为: redminote4x-hongmish.lan 是否可用: 不可用
IP地址为:192.168.2.198 设备名称为: mi6-xiaomishouji.lan 是否可用: 不可用
局域网ip搜索工具扫描设备的简单Java实现图三
在设置当前网段的时候,可以更具本机的IP地址来自动的设置当前网段,而不是手动的填写。在识别到某个设备可用的时候,通过接口或者主机名称来判断是是服务器,如果是的话,那么就进行连接操作!
以上就是局域网ip搜索工具扫描设备的简单Java实现