32 lines
978 B
JavaScript
32 lines
978 B
JavaScript
import axios from "axios";
|
|
import _ from "lodash";
|
|
import htmlParser from "node-html-parser";
|
|
import fs from "fs";
|
|
import { fileURLToPath } from "url";
|
|
import path from "path";
|
|
|
|
export const ibm = async () => {
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
const { data } = await axios.get(
|
|
"https://ondeck.console.cloud.ibm.com/docs/cloud-infrastructure?topic=cloud-infrastructure-ibm-cloud-ip-ranges"
|
|
);
|
|
|
|
const root = htmlParser.parse(data);
|
|
const ips = _.flattenDeep(
|
|
["#section-front-end-network", "#section-load-balancer-ips"].map(
|
|
(cssSelector) =>
|
|
root
|
|
.querySelectorAll(`${cssSelector} td:nth-child(3)`)
|
|
.map((e) => e.text.split("\n").map((l) => l.trim()))
|
|
)
|
|
).filter((e) => e);
|
|
await fs.promises.writeFile(
|
|
path.join(__dirname, "../ip_ranges/CLOUDFLARE.json"),
|
|
JSON.stringify({
|
|
NN: ips.map((prefix) => ({ prefix })),
|
|
})
|
|
);
|
|
};
|
|
|
|
// (async () => console.log(await ibm()))();
|