Java判断IP和域名
1. 流程概述
在Java中判断IP和域名的过程可以分为以下几个步骤:
步骤 | 动作 |
---|---|
步骤一 | 输入要判断的IP地址或域名 |
步骤二 | 判断输入是否为合法的IP地址 |
步骤三 | 判断输入是否为合法的域名 |
步骤四 | 使用Java代码判断输入的IP地址是否可达 |
步骤五 | 使用Java代码判断输入的域名是否可达 |
下面将分别介绍每个步骤需要做的事情以及相应的代码。
2. 判断IP地址的合法性
在Java中判断IP地址的合法性可以使用正则表达式进行匹配,判断输入是否符合IP地址的格式要求。
/**
* 判断输入的字符串是否为合法的IP地址
* @param ip 输入的字符串
* @return 是否为合法的IP地址
*/
public boolean isValidIpAddress(String ip) {
// 使用正则表达式匹配IP地址格式,其中 \d{1,3} 表示匹配1到3位的数字
String regex = "^((\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])$";
return ip.matches(regex);
}
3. 判断域名的合法性
在Java中判断域名的合法性可以使用正则表达式进行匹配,判断输入是否符合域名的格式要求。
/**
* 判断输入的字符串是否为合法的域名
* @param domain 输入的字符串
* @return 是否为合法的域名
*/
public boolean isValidDomain(String domain) {
// 使用正则表达式匹配域名格式
String regex = "^(?:(?!-|_)[a-zA-Z0-9-_]{1,63}(?<!-|_)\\.)+[a-zA-Z]{2,}$";
return domain.matches(regex);
}
4. 判断IP地址可达性
在Java中判断IP地址是否可达可以使用InetAddress类的isReachable方法。
/**
* 判断输入的IP地址是否可达
* @param ip 输入的IP地址
* @return 是否可达
*/
public boolean isIpReachable(String ip) {
try {
InetAddress address = InetAddress.getByName(ip);
return address.isReachable(5000); // 设置超时时间为5秒
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
5. 判断域名可达性
在Java中判断域名是否可达可以使用InetAddress类的isReachable方法。
/**
* 判断输入的域名是否可达
* @param domain 输入的域名
* @return 是否可达
*/
public boolean isDomainReachable(String domain) {
try {
InetAddress address = InetAddress.getByName(domain);
return address.isReachable(5000); // 设置超时时间为5秒
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
6. 完整代码示例
import java.io.IOException;
import java.net.InetAddress;
public class IpAndDomainChecker {
/**
* 判断输入的字符串是否为合法的IP地址
* @param ip 输入的字符串
* @return 是否为合法的IP地址
*/
public boolean isValidIpAddress(String ip) {
// 使用正则表达式匹配IP地址格式,其中 \d{1,3} 表示匹配1到3位的数字
String regex = "^((\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])$";
return ip.matches(regex);
}
/**
* 判断输入的字符串是否为合法的域名
* @param domain 输入的字符串
* @return 是否为合法的域名
*/
public boolean isValidDomain(String domain) {
// 使用正则表达式匹配域名格式
String regex = "^(?:(?!-|_)[a-zA-Z0-9-_]{