{"id":26343889,"url":"https://github.com/sbarbett/sitebacker_probe_ips","last_synced_at":"2025-03-16T05:19:29.679Z","repository":{"id":282133748,"uuid":"947599196","full_name":"sbarbett/sitebacker_probe_ips","owner":"sbarbett","description":"A Python tool to extract UltraDNS SiteBacker Probe IPs","archived":false,"fork":false,"pushed_at":"2025-03-13T00:18:52.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T01:25:45.188Z","etag":null,"topics":["sysadmin-tool","ultradns"],"latest_commit_sha":null,"homepage":"https://docs.ultradns.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sbarbett.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-13T00:17:44.000Z","updated_at":"2025-03-13T00:18:55.000Z","dependencies_parsed_at":"2025-03-13T01:25:47.175Z","dependency_job_id":"c5b4afd2-4e41-413f-be29-b227c24e2f6e","html_url":"https://github.com/sbarbett/sitebacker_probe_ips","commit_stats":null,"previous_names":["sbarbett/sitebacker_probe_ips"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbarbett%2Fsitebacker_probe_ips","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbarbett%2Fsitebacker_probe_ips/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbarbett%2Fsitebacker_probe_ips/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbarbett%2Fsitebacker_probe_ips/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sbarbett","download_url":"https://codeload.github.com/sbarbett/sitebacker_probe_ips/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243827480,"owners_count":20354317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sysadmin-tool","ultradns"],"created_at":"2025-03-16T05:19:29.105Z","updated_at":"2025-03-16T05:19:29.673Z","avatar_url":"https://github.com/sbarbett.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sitebacker_probe_ips\n\nA Python tool to extract UltraDNS SiteBacker Probe IPs from the UltraDNS REST API User Guide PDF.\n\n## Description\n\nThis tool downloads the UltraDNS REST API User Guide PDF and extracts the IP Probes by Region table, which contains the IPv4 and IPv6 addresses used by UltraDNS SiteBacker probes. This information is useful for configuring firewall rules to allow traffic from these probes.\n\n## Installation\n\n1. Clone this repository:\n   ```\n   git clone https://github.com/sbarbett/sitebacker_probe_ips.git\n   cd sitebacker_probe_ips\n   ```\n\n2. Create and activate a virtual environment:\n   ```\n   python -m venv venv\n   source venv/bin/activate  # On Windows: venv\\Scripts\\activate\n   ```\n\n3. Install the package:\n   ```\n   pip install -e .\n   ```\n\n## Usage\n\nRun the tool with default settings:\n```\npython -m sitebacker_probe_ips.main\n```\n\nThis will:\n1. Download the PDF from the UltraDNS website\n2. Search for the IP Probes by Region table\n3. Extract the IP addresses and regions\n4. Print the data to stdout in JSON format\n\n### Command-line Options\n\n```\nusage: main.py [-h] [--url URL] [--output OUTPUT] [--format {json,csv,yaml}] [--verbose]\n\nExtract UltraDNS SiteBacker Probe IPs from PDF\n\noptions:\n  -h, --help            show this help message and exit\n  --url URL             URL to download the PDF from\n  --output, -o OUTPUT   Output file path (if not specified, prints to stdout)\n  --format, -f {json,csv,yaml}\n                        Output format (default: json)\n  --verbose, -v         Print verbose output, including PDF content\n```\n\n### Examples\n\nExtract data and save as CSV:\n```\npython -m sitebacker_probe_ips.main --format csv --output sitebacker_probes.csv\n```\n\nExtract data and save as YAML:\n```\npython -m sitebacker_probe_ips.main --format yaml --output sitebacker_probes.yaml\n```\n\nEnable verbose output:\n```\npython -m sitebacker_probe_ips.main --verbose\n```\n\n## Output Format\n\n### JSON (default)\n\nThe JSON output is an array of objects, each representing a region with its IPv4 and IPv6 addresses:\n\n```json\n[\n  {\n    \"region\": \"North America - East\",\n    \"ipv4\": [\n      \"156.154.35.153\",\n      \"156.154.35.154\",\n      ...\n    ],\n    \"ipv6\": [\n      \"2610:a1:3008:128::153\",\n      \"2610:a1:3008:128::154\",\n      ...\n    ]\n  },\n  ...\n]\n```\n\n### YAML\n\nThe YAML output has the same structure as JSON but in YAML format:\n\n```yaml\n- region: North America - East\n  ipv4:\n  - 156.154.35.153\n  - 156.154.35.154\n  ...\n  ipv6:\n  - 2610:a1:3008:128::153\n  - 2610:a1:3008:128::154\n  ...\n```\n\n### CSV\n\nThe CSV output has three columns: Region, Type (IPv4 or IPv6), and IP Address:\n\n```\nRegion,Type,IP Address\n\"North America - East\",IPv4,156.154.35.153\n\"North America - East\",IPv4,156.154.35.154\n...\n\"North America - East\",IPv6,2610:a1:3008:128::153\n...\n```\n\n## Dependencies\n\n- PyMuPDF (fitz): For PDF parsing\n- requests: For downloading the PDF\n- PyYAML: For YAML output format\n\n## License\n\nMIT \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbarbett%2Fsitebacker_probe_ips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsbarbett%2Fsitebacker_probe_ips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbarbett%2Fsitebacker_probe_ips/lists"}