如何实现“ip段匹配 java”
流程图
flowchart TD
A(开始) --> B(读取IP段)
B --> C(检查IP格式)
C --> D(解析IP段)
D --> E(匹配IP)
E --> F(输出结果)
F --> G(结束)
步骤表格
步骤 | 描述 |
---|---|
1 | 读取IP段 |
2 | 检查IP格式 |
3 | 解析IP段 |
4 | 匹配IP |
5 | 输出结果 |
6 | 结束 |
具体步骤及代码示例
步骤1: 读取IP段
// 读取用户输入的IP段
Scanner scanner = new Scanner(System.in);
System.out.println("请输入IP段:");
String ipRange = scanner.nextLine();
步骤2: 检查IP格式
// 使用正则表达式检查IP格式是否正确
if (!ipRange.matches("\\d+\\.\\d+\\.\\d+\\.\\d+-\\d+\\.\\d+\\.\\d+\\.\\d+")) {
System.out.println("IP格式不正确,请重新输入!");
return;
}
步骤3: 解析IP段
// 解析IP段为起始IP和结束IP
String[] ips = ipRange.split("-");
String startIP = ips[0];
String endIP = ips[1];
步骤4: 匹配IP
// 将IP转换为long型便于比较
long start = ipToLong(startIP);
long end = ipToLong(endIP);
// 比较要匹配的IP是否在范围内
if (ipToLong(ip) >= start && ipToLong(ip) <= end) {
System.out.println("IP段匹配成功!");
} else {
System.out.println("IP段匹配失败!");
}
步骤5: 输出结果
// 根据匹配结果输出相应信息
完整代码示例
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入IP段:");
String ipRange = scanner.nextLine();
if (!ipRange.matches("\\d+\\.\\d+\\.\\d+\\.\\d+-\\d+\\.\\d+\\.\\d+\\.\\d+")) {
System.out.println("IP格式不正确,请重新输入!");
return;
}
String[] ips = ipRange.split("-");
String startIP = ips[0];
String endIP = ips[1];
long start = ipToLong(startIP);
long end = ipToLong(endIP);
if (ipToLong(ip) >= start && ipToLong(ip) <= end) {
System.out.println("IP段匹配成功!");
} else {
System.out.println("IP段匹配失败!");
}
}
// IP转换为long型
public static long ipToLong(String ip) {
String[] ipArray = ip.split("\\.");
long result = 0;
for (int i = 0; i < 4; i++) {
result = result << 8 | Integer.parseInt(ipArray[i]);
}
return result;
}
}
结束语
通过以上步骤,你可以实现IP段匹配的功能了。希望这篇文章对你有帮助,加油!