How do I get host names by using IP, MAC addresses

2019-03-02 18:57发布

问题:

I need to get the details of all wireless devices that are connected to my wifi network. I'm getting IP, MAC addresses, somehow Vendors of device as well.

How do I get the device type? (i.e laptop, mobile, AC, Refrigerator) And host names?

InetAddress inetAddress = null;
        for (int i = 0; i < 256; i++) {
            try {
                inetAddress = InetAddress.getByName("192.168.1." + i);
                if (inetAddress.isReachable(30)) {
                    ConnectedDevice device = new ConnectedDevice();
                    device.setDeviceIPAddress(subnet + i);
                    device.setDeviceMACAddress(Utils.getMacAddressFromArpCache(inetAddress.getHostName()));

                    Log.d("Device", inetAddress.getHostName() + ", " + inetAddress.getHostAddress() + ", " + inetAddress.getCanonicalHostName() + ", " + device.getDeviceMACAddress());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

getHostName(), getHostAddress(), getCanonicalHostName() all 3 methods of inetAddress returning the ip address only. How do I get host names of connected devices on my network? What else should I do to get all the possible details of devices? Please guide me.