gpt4 book ai didi

java - 有没有办法用 Java 下载 Microsoft Azure 数据中心 IP 范围?

转载 作者:行者123 更新时间:2023-11-30 10:39:08 27 4
gpt4 key购买 nike

我的问题类似于Is there a way to automatically and programmatically download the latest IP ranges used by Microsoft Azure?只是我尝试使用 Java 来完成它。

我将继续从 https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653 抓取下载链接使用 Javaq,然后从 URL 再次下载它,但我认为 MS Azure 应该提供一些 API 或更简单的选项来执行此操作。每个人都需要在防火墙中将其列入白名单。

如果有人有更好的选择在 Java 中执行此操作,请告诉我。

最佳答案

已经编写了一个粗略的代码,用于在抓取下载网址后提取 IP 地址。如果 Azure 将来更改下载 URL 中的某些内容,则可能无法正常工作。

private static final String baseURI = "https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653";
private static final String downloadURI_Part = "https://download.microsoft.com";
private static final String HREF = "href";

public static void main(String[] args) {
new DownloadXML().parse();
}

public void parse() {
try {
URL url = new URL(baseURI);
String downloadURL = "";
org.jsoup.nodes.Document doc1 = Jsoup.connect(url.toString()).get();
Elements newsHeadlines = doc1.select("a");
for (org.jsoup.nodes.Element element : newsHeadlines) {
if (element.hasAttr(HREF) && element.getElementsByAttribute(HREF).attr(HREF)
.contains(downloadURI_Part)) {
downloadURL = element.getElementsByAttribute(HREF).attr(HREF);
System.out.println(element.getElementsByAttribute(HREF).attr(HREF));
}
}
System.out.println(downloadURL);
URL url1 = new URL(downloadURL);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(url1.openStream());
doc.getDocumentElement().normalize();
NodeList nRegionList = doc.getElementsByTagName("Region");
System.out.println("----------------------------");

for (int nRegionCount = 0; nRegionCount < nRegionList.getLength(); nRegionCount++) {
Node nRegionNode = nRegionList.item(nRegionCount);
System.out.println("\nCurrent Element :" + nRegionNode.getNodeName());
if (nRegionNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nRegionNode;
System.out.println("Region name: " + eElement.getAttribute("Name"));
NodeList nIPRangeList = eElement.getChildNodes();
for (int iprangecnt = 0; iprangecnt < nIPRangeList.getLength(); iprangecnt++) {
Node nIPRNode = nIPRangeList.item(iprangecnt);
if (nIPRNode.hasAttributes()) {
// get attributes names and values
NamedNodeMap nodeMap = nIPRNode.getAttributes();
for (int i = 0; i < nodeMap.getLength(); i++) {
Node node = nodeMap.item(i);
System.out.println("attr name : " + node.getNodeName());
System.out.println("attr value : " + node.getNodeValue());
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

关于java - 有没有办法用 Java 下载 Microsoft Azure 数据中心 IP 范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39400501/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com