尝试在 Android 中使用反向 dns 获取网络设备名称
Trying to get network device names with reverse dns in Android
我可以使用 inetaddress class 获取局域网中所有设备的 IP 地址。我需要做的是反向查找 ip 地址并在网络中查找设备名称,如:"Jimmie's Macbook"
我的代码块能够获取本地网络范围内的所有 IP 地址:
private ArrayList<String> scanSubNet(String subnet) {
ArrayList<String> hosts = new ArrayList<>();
InetAddress inetAddress;
for (int i = 1; i <= 255; i++) {
try {
inetAddress = InetAddress.getByName(subnet + String.valueOf(i));
if (inetAddress.isReachable(1000)) {
hosts.add(inetAddress.getHostName());
Log.d(TAG, InetAddress.getByAddress(inetAddress.getAddress()).getHostAddress());
Log.d(TAG, InetAddress.getByAddress(inetAddress.getAddress()).getCanonicalHostName());
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
return hosts;
}
我将我的方法称为;
ArrayList<String> subnetList = scanSubNet("192.168.1.");ArrayList<String> subnetList = scanSubNet("192.168.1.");
在 Log.d(TAG,我正在尝试使用反向 dns 获取设备名称。但是这两行都给我输出了 ip 地址(不是设备名称作为字符串)
有机会成功吗?
此致,
Onder.
这可能是由于路由器配置错误造成的。
在 LAN 中,没有依赖于成功的反向 DNS 查找的关键功能,因此这种错误配置很容易在很长一段时间内未被发现。
如果没有关于您的 LAN 的更多信息,很难判断您的特定情况出了什么问题,但首先想到的是在路由器上配置正确的 "DNS Suffix"。这通常在 DHCP 设置下找到。
我只是通过获取 MACID 并匹配属于制造商的前 3 位数字来做到这一点。
https://macvendors.com/本站还提供api(Post/GET)解析MAC地址。
您需要点对点握手,而不是解析 MAC 的全名。
我可以使用 inetaddress class 获取局域网中所有设备的 IP 地址。我需要做的是反向查找 ip 地址并在网络中查找设备名称,如:"Jimmie's Macbook"
我的代码块能够获取本地网络范围内的所有 IP 地址:
private ArrayList<String> scanSubNet(String subnet) {
ArrayList<String> hosts = new ArrayList<>();
InetAddress inetAddress;
for (int i = 1; i <= 255; i++) {
try {
inetAddress = InetAddress.getByName(subnet + String.valueOf(i));
if (inetAddress.isReachable(1000)) {
hosts.add(inetAddress.getHostName());
Log.d(TAG, InetAddress.getByAddress(inetAddress.getAddress()).getHostAddress());
Log.d(TAG, InetAddress.getByAddress(inetAddress.getAddress()).getCanonicalHostName());
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
return hosts;
}
我将我的方法称为;
ArrayList<String> subnetList = scanSubNet("192.168.1.");ArrayList<String> subnetList = scanSubNet("192.168.1.");
在 Log.d(TAG,我正在尝试使用反向 dns 获取设备名称。但是这两行都给我输出了 ip 地址(不是设备名称作为字符串)
有机会成功吗?
此致, Onder.
这可能是由于路由器配置错误造成的。
在 LAN 中,没有依赖于成功的反向 DNS 查找的关键功能,因此这种错误配置很容易在很长一段时间内未被发现。
如果没有关于您的 LAN 的更多信息,很难判断您的特定情况出了什么问题,但首先想到的是在路由器上配置正确的 "DNS Suffix"。这通常在 DHCP 设置下找到。
我只是通过获取 MACID 并匹配属于制造商的前 3 位数字来做到这一点。
https://macvendors.com/本站还提供api(Post/GET)解析MAC地址。
您需要点对点握手,而不是解析 MAC 的全名。