Ever switched between office Wi-Fi, home Wi-Fi, Ethernet, or a mobile hotspot and had to update your development server's IP address again?
That's the problem I'm trying to solve with AUTONET, an open-source, cross-platform networking tool built in Rust.
The Problem
When developing web or mobile applications, your machine can have multiple IP addresses from Wi-Fi, Ethernet, Docker, virtual machines, and VPNs.
Finding the correct address to access your local development server from another device can become frustrating.
For example, your application might be running on localhost:3000, but you want to test it from your phone.
Which IP address should you use?
What AUTONET Does
AUTONET inspects your machine's network interfaces and routing information to select a suitable IP address for local development.
Some of its capabilities include:
- Automatic IP selection — Finds a suitable local network address.
- Network change detection — Monitors changes between Wi-Fi, Ethernet, and other interfaces.
- Docker and VPN awareness — Avoids selecting unsuitable virtual network addresses by default.
- Developer integration — Provides environment variables for development applications.
-
Local hostname discovery — Supports
.localhostname advertisement using mDNS. - QR code generation — Makes it easier to open development applications on mobile devices.
- Network diagnostics — Helps identify potential connectivity problems.
Built with Rust
AUTONET uses a modular Rust architecture with separate components for network discovery, address selection, and CLI operations.
It uses native operating-system networking APIs to inspect interfaces and routes.
Linux support is implemented, while macOS and Windows implementations still need real-hardware validation.
Still Evolving
The project is open-source and under active development.
I'm particularly interested in feedback and contributions around:
- Testing across Linux, macOS, and Windows
- Network switching and connectivity edge cases
- Improving address selection and diagnostics
- Documentation and developer experience
If you're interested in Rust, networking, operating systems, or developer tools, feel free to explore the repository.
GitHub: https://github.com/phravins/AUTONET
I'd love to hear your thoughts on the approach.
How do you currently handle changing local IP addresses when testing applications across multiple devices?
Feedback, issues, and pull requests are always welcome!
Top comments (0)