summaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/rules/acme/IpCalc.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/rules/acme/IpCalc.java')
-rw-r--r--src/main/java/io/trygvis/rules/acme/IpCalc.java67
1 files changed, 0 insertions, 67 deletions
diff --git a/src/main/java/io/trygvis/rules/acme/IpCalc.java b/src/main/java/io/trygvis/rules/acme/IpCalc.java
deleted file mode 100644
index 5369d62..0000000
--- a/src/main/java/io/trygvis/rules/acme/IpCalc.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package io.trygvis.rules.acme;
-
-import io.trygvis.rules.network.Ipv4Cidr;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Pattern;
-
-public class IpCalc {
- private static final Pattern pattern = Pattern.compile("([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})/([0-9]{1,3})");
-
- public static class FirstLast {
- public final int first;
- public final int last;
-
- public FirstLast(int first, int last) {
- this.first = first;
- this.last = last;
- }
- }
-
- public static Ipv4Cidr cidr(String cidr) {
- var matcher = pattern.matcher(cidr);
- if (!matcher.matches()) {
- throw new IllegalArgumentException("Not a CIDR: " + cidr);
- }
-
- var b1 = matcher.group(1);
- var b2 = matcher.group(2);
- var b3 = matcher.group(3);
- var b4 = matcher.group(4);
-
- int network = parse(b1) << 24 |
- parse(b2) << 16 |
- parse(b3) << 8 |
- parse(b4);
-
-// System.out.printf("network = %x%n", network);
-
- var l = matcher.group(5);
- var bits = Integer.parseInt(l);
- var hostBits = 32 - bits;
- int size = 1 << hostBits;
-
- int netmask = (-1 >> hostBits) << hostBits;
-// System.out.printf("netmask = %08x%n", netmask);
-
- int x = network & ~netmask;
-
- if (x != 0) {
- throw new IllegalArgumentException("Not a CIDR: " + cidr);
- }
-
- return new Ipv4Cidr(network, netmask, size, bits);
- }
-
- private static int parse(String s) {
- var i = Integer.parseInt(s);
- if (i > 255) {
- throw new IllegalArgumentException("Not a CIDR");
- }
-
- return i;
- }
-}