要在Android设备上获取域名ip,你需要使用Java内建的类InetAddress。
下边的代码示例化表演了如何获取域名的IP:
try {
InetAddress inetAddress = InetAddress.getByName("www.google.com");
// Get IP address from host name
String ipAddress = inetAddress.getHostAddress();
Log.i("IP Address", ipAddress);
} catch (UnknownHostException e) {
Log.e("Unknown Host", e.getMessage());
}
在上述代码中,最核心的代码就是 InetAddress.getByName("www.google.com")
。这行代码就是在查询给定的域名的ip地址。
注意,如果你在主线程上调用这段代码会引发 NetworkOnMainThreadException,所以确保你在子线程或者使用异步任务(AsyncTask)正确的处理这段网络相关的操作。
你也可以使用ping命令获取IP地址,不过这种方式的可行性取决于设备是否允许执行ping命令。
try {
Process process = Runtime.getRuntime().exec("/system/bin/ping -c 1 www.google.com");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
Log.i("Ping Result", line);
}
} catch (IOException e) {
Log.e("Ping Command Failed", e.getMessage());
}
在上述代码段中, ping -c 1 www.google.com
命令将返回ping www.google.com一次的结果。我们可以从中解析出IP地址。
注意,这种方法的可行性取决于设备是否允许执行ping命令。有的设备可能不允许执行ping命令,或者需要root权限。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/170243.html