Files
whois/remove-as
Olaf Baumert 3a7987308a fix: Remove incorrect AS 60284 entry and add remove-as utility
- Removed AS 60284 which was accidentally added instead of 76-2:0:17
- Added remove-as script for programmatically removing AS entries
- Updated AS 2:0:17 with correct ISD 76 information

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-27 07:56:48 +00:00

74 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python3
import os
import sys
import argparse
from pathlib import Path
def remove_as_entry(as_id, dry_run=False):
"""Remove an AS entry from the WHOIS database"""
# Get the database path
script_dir = Path(__file__).parent
db_dir = script_dir / 'db' / 'as'
# Construct the file path
as_file = db_dir / as_id
# Check if the file exists
if not as_file.exists():
print(f"Error: AS entry '{as_id}' not found in database")
return False
# Read and display the entry before deletion
print(f"\nAS entry to be removed:")
print("-" * 50)
with open(as_file, 'r') as f:
print(f.read())
print("-" * 50)
if dry_run:
print("\n[DRY RUN] Would remove:", as_file)
return True
# Confirm deletion
response = input(f"\nAre you sure you want to remove AS {as_id}? (yes/no): ")
if response.lower() != 'yes':
print("Deletion cancelled")
return False
# Remove the file
try:
os.remove(as_file)
print(f"\nSuccessfully removed AS entry: {as_id}")
return True
except Exception as e:
print(f"Error removing AS entry: {e}")
return False
def main():
parser = argparse.ArgumentParser(
description='Remove an AS entry from the WHOIS database',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
Examples:
./remove-as 60284 # Remove AS 60284
./remove-as 76-60284 # Remove AS 76-60284
./remove-as 2:0:17 # Remove AS 2:0:17
./remove-as --dry-run 60284 # Show what would be removed without deleting
"""
)
parser.add_argument('as_id', help='AS identifier to remove (e.g., 60284, 76-60284, 2:0:17)')
parser.add_argument('--dry-run', action='store_true',
help='Show what would be removed without actually deleting')
args = parser.parse_args()
# Remove the AS entry
success = remove_as_entry(args.as_id, args.dry_run)
# Exit with appropriate code
sys.exit(0 if success else 1)
if __name__ == '__main__':
main()