A web application to check if an IP address is within the TWDS Steam Cache service range.
- IP Address Lookup: Enter any IPv4 or IPv6 address to check
- Current IP Detection: Automatically detect and check your current IP
- Steam Cache Status: Shows whether the IP is within TWDS Steam Cache service range
- Geolocation Data: Displays country and ISP information
- BGP Information: Shows AS path and BGP communities with translations
- Real-time Validation: Live IP address validation with visual feedback
├── index.html # Main HTML file
├── script.js # JavaScript functionality
├── styles.css # CSS styles
├── data/
│ └── communities.json # BGP communities translations
├── scripts/
│ └── fetch_bird_data.sh # Remote BIRD2 export helper for CI
├── .github/workflows/
│ ├── deploy.yml # GitHub Pages deployment workflow
│ └── fetch-bird-data.yml # Raw BIRD data refresh workflow
└── README.md # This file
This application is automatically deployed to GitHub Pages using GitHub Actions.
The raw BIRD exports are stored separately on the bird-data branch and are not tracked on the main code branch.
- Raw data refresh: A scheduled or manual workflow connects to
user@103.147.22.10, runssudo birdc, and commits updatedsteam-cache-v4.txt/steam-cache-v6.txtfiles tobird-data - Deploy trigger: Pushes to the default code branch or successful completion of the raw data refresh workflow
- Build: The deploy workflow checks out the default code branch, restores raw text dumps from
bird-data, converts them to JSON, and copies required files to the deployment directory - Deploy: Publishes to GitHub Pages with custom domain
index.html- Main applicationscript.js- Application logicstyles.css- Stylingdata/*.json- Steam cache data and translationsCNAME- Custom domain configuration
SSH_PRIVKEY- Private key used by GitHub Actions to SSH touser@103.147.22.10
The remote account must be able to run sudo birdc non-interactively.
The application is configured to use the custom domain: steam.twds.com.tw
To run the application locally:
- Clone the repository
- Open
index.htmlin a web browser - If you want to build JSON locally, place
steam-cache-v4.txtandsteam-cache-v6.txtunderdata/ - The application will load Steam cache data from the generated JSON files in the
data/directory
- Steam Cache Data: Converted from BGP routing table exports
- Geolocation: ipapi.co API
- Current IP: ipify.org API
- BGP Communities: Custom translations for TWDS-specific communities
- No Dependencies: Pure HTML, CSS, and JavaScript
- Responsive Design: Works on desktop and mobile devices
- Longest Prefix Match: Proper routing table lookup algorithm
- Real-time Validation: Client-side IP address validation
- Error Handling: Comprehensive error handling and user feedback
https://ipapi.co/{ip}/json/- IP geolocation datahttps://api.ipify.org?format=json- Current IP detection
This project is part of the TWDS Steam Cache service.