From db72c1d9eebaae5109efca92667fbeae141e129f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tilmann=20Z=C3=A4schke?= Date: Mon, 8 Sep 2025 16:40:27 +0200 Subject: [PATCH 1/2] ISD-AS assignment --- CHANGELOG.md | 5 ++- pom.xml | 2 +- .../util/DownloadAssignmentsFromWeb.java | 38 ++++++++++++------- 3 files changed, 29 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f6e82f..9cd1c08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] -- Nothing yet +### Fixed + +- ISD-AS assignment parser broken after website change + [#12](https://github.com/netsec-ethz/scion-java-multiping/pull/12) ## [0.4.0] - 2025-04-04 diff --git a/pom.xml b/pom.xml index 99f02c7..93648e3 100644 --- a/pom.xml +++ b/pom.xml @@ -83,7 +83,7 @@ org.scion jpan - 0.5.1 + 0.5.3 diff --git a/src/main/java/org/scion/multiping/util/DownloadAssignmentsFromWeb.java b/src/main/java/org/scion/multiping/util/DownloadAssignmentsFromWeb.java index 15b2e1f..a8715db 100644 --- a/src/main/java/org/scion/multiping/util/DownloadAssignmentsFromWeb.java +++ b/src/main/java/org/scion/multiping/util/DownloadAssignmentsFromWeb.java @@ -17,6 +17,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; + import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; @@ -24,7 +25,7 @@ public class DownloadAssignmentsFromWeb { private static final String HTTPS_URL = - "https://docs.anapaya.net/en/latest/resources/isd-as-assignments/"; + "https://docs.anapaya.net/en/latest/resources/isd-as-assignments/"; public static void main(String[] args) throws IOException { new DownloadAssignmentsFromWeb().jsoup(); @@ -42,22 +43,31 @@ public static List getList() { public List jsoup() throws IOException { List result = new ArrayList<>(100); Document doc = Jsoup.connect(HTTPS_URL).get(); - for (Element bc : doc.body().getElementsByAttributeValue("id", "isd-membership")) { - // System.out.println("eee " + bc); - for (Element bc2 : bc.getElementsByTag("tbody")) { - // System.out.println("eee2 " + bc2); - for (Element bc3 : bc2.children()) { - // System.out.println("eee3 " + bc3); - String isdAs = bc3.child(0).getElementsByTag("p").text(); - String name = bc3.child(1).getElementsByTag("p").text(); - // System.out.println(isdAs + " " + name); - result.add(new ParseAssignments.HostEntry(ScionUtil.parseIA(isdAs), name)); - // for (Element bc4 : bc3.children()) { - // System.out.println("eee4 " + bc4.getElementsByTag("p").text()); - // } + + for (Element table : doc.getElementsByTag("table")) { + for (Element isd_as : table.getElementsContainingText("ISD-AS")) { + if ("table".equals(isd_as.tagName())) { + for (Element te : table.children()) { + if ("thead".equals(te.tagName())) { + continue; + } + for (Element te2 : te.children()) { + // System.out.println(" te3: " + te2.tag()); + String isdAs = te2.child(0).getElementsByTag("td").text(); + String name = te2.child(1).getElementsByTag("td").text(); + // System.out.println(isdAs + " " + name); + result.add(new ParseAssignments.HostEntry(ScionUtil.parseIA(isdAs), name)); + // for (Element bc4 : bc3.children()) { + // System.out.println("eee4 " + bc4.getElementsByTag("p").text()); + // } + } + + } + } } } + return result; } } From 10954b1c8fb8576dda82355be825246cbc290366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tilmann=20Z=C3=A4schke?= Date: Mon, 8 Sep 2025 16:43:05 +0200 Subject: [PATCH 2/2] ISD-AS assignment --- .../org/scion/multiping/util/DownloadAssignmentsFromWeb.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/org/scion/multiping/util/DownloadAssignmentsFromWeb.java b/src/main/java/org/scion/multiping/util/DownloadAssignmentsFromWeb.java index a8715db..aad5709 100644 --- a/src/main/java/org/scion/multiping/util/DownloadAssignmentsFromWeb.java +++ b/src/main/java/org/scion/multiping/util/DownloadAssignmentsFromWeb.java @@ -57,13 +57,8 @@ public List jsoup() throws IOException { String name = te2.child(1).getElementsByTag("td").text(); // System.out.println(isdAs + " " + name); result.add(new ParseAssignments.HostEntry(ScionUtil.parseIA(isdAs), name)); - // for (Element bc4 : bc3.children()) { - // System.out.println("eee4 " + bc4.getElementsByTag("p").text()); - // } } - } - } } }