1.获取计算机地址
public String getAddress() {
try {
InetAddress address = InetAddress.getLocalHost();
return address.getHostAddress();
} catch (UnknownHostException e) {
// 异常或无权访问设置为 127.0.0.1
e.printStackTrace();
return "127.0.0.1";
}
}
2.获取计算机名称
public String getHostName() {
try {
InetAddress address = InetAddress.getLocalHost();
return address.getHostName();
} catch (UnknownHostException e) {
// 异常或无权访问设置为 localhost
e.printStackTrace();
return "localhost";
}
}
3.获取计算机MAC地址
public static String getMac() {
try {
InetAddress inetAddress = InetAddress.getLocalHost();
byte[] mac = NetworkInterface.getByInetAddress(inetAddress).getHardwareAddress();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i ++) {
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "\n"));
}
return sb.toString();
} catch (UnknownHostException | SocketException e) {
// 异常或无权访问设置为 localhost
e.printStackTrace();
return "00-00-00-00-00-00";
}
}
4.判断域名是否可访问
public void checkUrl() {
String netUrl = "https://www.baidu.com";
try {
// 方法一:
// 只是检查域名是否可以通过网络连接到,并不代表该域名在浏览器中可以正常访问。
URL url = new URL(netUrl); // 解析url
String domainName = url.getHost(); // 获取url的域名
System.out.println(domainName);
// reachable返回true代表可访问
boolean reachable = InetAddress.getByName(domainName).isReachable(1000); // 设置1秒的过期时间
System.out.println(reachable);
// 方法二:
// 创建了一个HttpURLConnection对象,并通过URL连接到指定的域名。然后,发送一个HTTP GET请求,并获取响应的状态码。
// 如果状态码为200(HttpURLConnection.HTTP_OK),则表示域名可以正常访问。
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
boolean result = responseCode == HttpURLConnection.HTTP_OK;
System.out.println(result);
} catch (IOException exception) {
System.out.println("域名解析失败: " + exception.getMessage());
}
}