@karthithehacker/ipchanger
v1.0.0
Published
Tor-based IP changer CLI tool that rotates your public IP address automatically using the Tor network and displays it in a clean terminal table.
Maintainers
Keywords
Readme
IP CHANGER 🌐🔄
A powerful Tor-based IP rotation CLI tool that automatically changes your public IP address at a specified interval and displays it in a clean terminal table.
Built with ❤️ by @CappricioSec

⚠️ For educational and privacy testing purposes only. Do not misuse this tool for illegal activities.
📌 Features
- 🔄 Automatic IP Rotation – Change your public IP using the Tor network
- 🧅 Tor Integration – Uses Tor SOCKS proxy for anonymous routing
- 📊 Clean Table Output – Displays IP and timestamp in a formatted CLI table
- 🖥 ASCII Banner – Stylish banner powered by
figlet - ⚡ Live Interval Update – Change refresh interval without restarting the tool
- 🛑 Graceful Exit – Stop the tool anytime using keyboard input
💻 Tech Stack
Language
- Node.js (JavaScript)
Libraries Used
axioscommandercli-table3figletchalk
🗂️ Project Structure
ipchanger/
├── includes/
│ ├── banner.js # banner, UI and help menu
│ ├── ip.js # Tor connection and public IP fetching
│ ├── utils.js # Tor checks and CLI argument handling
│
├── ipchanger.js # main CLI entry point
├── package.json
└── README.md🚀 Usage
🔧 Installation
First ensure Tor is installed on your system.
Download Tor:
- Linux →
sudo apt install tor - Mac →
brew install tor - Windows → Install from Tor Project website
Then install the CLI globally:
npm install -g @karthithehacker/ipchanger▶ Running the Tool
ipchanger -s 5Available Options
| Command | Description |
| -------------- | --------------------------------- |
| -s <seconds> | Rotate IP every specified seconds |
| -h | Show help menu |
🖥 Example Output
┌──(karthithehacker㉿BOOK-UVR5FJ22CV)-[~]
└─$ ipchanger -s 10
██╗██████╗ ██████╗██╗ ██╗ █████╗ ███╗ ██╗ ██████╗ ███████╗██████╗
██║██╔══██╗ ██╔════╝██║ ██║██╔══██╗████╗ ██║██╔════╝ ██╔════╝██╔══██╗
██║██████╔╝ ██║ ███████║███████║██╔██╗ ██║██║ ███╗█████╗ ██████╔╝
██║██╔═══╝ ██║ ██╔══██║██╔══██║██║╚██╗██║██║ ██║██╔══╝ ██╔══██╗
██║██║ ╚██████╗██║ ██║██║ ██║██║ ╚████║╚██████╔╝███████╗██║ ██║
╚═╝╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝
Website: cappriciosec.com
┌─────────────────────────┬────────────────────────────────────────┐
│ Service │ Information │
├─────────────────────────┼────────────────────────────────────────┤
│ Tor Status │ Tor service started │
├─────────────────────────┼────────────────────────────────────────┤
│ IP Rotation │ IP change every 10 sec │
├─────────────────────────┼────────────────────────────────────────┤
│ Terminate │ Press X to terminate │
└─────────────────────────┴────────────────────────────────────────┘
[3:23:32 AM] Current IP → 107.189.3.148
[3:23:56 AM] Current IP → 192.42.116.144
[3:24:00 AM] Current IP → 109.70.100.9
[3:24:16 AM] Current IP → 109.70.100.3
[3:24:20 AM] Current IP → 107.189.10.175
[3:24:36 AM] Current IP → 45.134.225.36
[3:24:39 AM] Current IP → 109.70.100.7
[3:24:56 AM] Current IP → 192.159.99.168🖥 Help Output
┌──(karthithehacker㉿BOOK-UVR5FJ22CV)-[~]
└─$ ipchanger -h
██╗██████╗ ██████╗██╗ ██╗ █████╗ ███╗ ██╗ ██████╗ ███████╗██████╗
██║██╔══██╗ ██╔════╝██║ ██║██╔══██╗████╗ ██║██╔════╝ ██╔════╝██╔══██╗
██║██████╔╝ ██║ ███████║███████║██╔██╗ ██║██║ ███╗█████╗ ██████╔╝
██║██╔═══╝ ██║ ██╔══██║██╔══██║██║╚██╗██║██║ ██║██╔══╝ ██╔══██╗
██║██║ ╚██████╗██║ ██║██║ ██║██║ ╚████║╚██████╔╝███████╗██║ ██║
╚═╝╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝
Website: cappriciosec.com
Usage:
ipchanger -s <seconds> Restart Tor every X seconds
ipchanger -h Show help
┌────────────────────┬───────────────────────────────────────────────────────┬─────────────────────────────────────────────┐
│ Application │ Command / Steps │ Description │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Chromium │ chromium --proxy-server="socks5://127.0.0.1:9050" │ Launch Chromium with SOCKS5 proxy enabled │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Chrome │ chrome --proxy-server="socks5://127.0.0.1:9050" │ Launch Google Chrome with SOCKS5 proxy │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Firefox │ Settings → Preferences → Network Settings → Manual │ Configure Firefox via UI to use SOCKS5 │
│ │ Proxy → SOCKS Host: 127.0.0.1 Port: 9050 SOCKS v5 → │ proxy │
│ │ Enable Proxy DNS │ │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Linux (system) │ export ALL_PROXY="socks5h://127.0.0.1:9050" │ Set proxy for terminal apps (session only) │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Linux │ Add socks5 127.0.0.1 9050 to /etc/proxychains.conf → │ Force any application to use SOCKS5 proxy │
│ (proxychains) │ proxychains4 <command> │ │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ macOS │ sudo networksetup -setsocksfirewallproxy "Wi-Fi" │ Apply SOCKS5 proxy to Wi-Fi network │
│ │ 127.0.0.1 9050 │ │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Windows │ Use Proxifier / ProxyCap → Add Proxy: 127.0.0.1:9050 │ Windows requires helper tool for global │
│ │ (SOCKS5) │ SOCKS proxy │
└────────────────────┴───────────────────────────────────────────────────────┴─────────────────────────────────────────────┘Setup
| Connect to | Command / Steps | Description |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| Chromium | chromium --proxy-server="socks5://127.0.0.1:9050" | Launch Chromium with SOCKS5 proxy enabled. |
| Chrome | chrome --proxy-server="socks5://127.0.0.1:9050" | Launch Google Chrome with SOCKS5 proxy. |
| Firefox | Settings → Preferences → Network Settings → Manual Proxy → SOCKS Host: 127.0.0.1, Port: 9050, SOCKS v5 → Enable Proxy DNS | Configure Firefox via UI to use SOCKS5 proxy. |
| Linux (system-wide) | export ALL_PROXY="socks5h://127.0.0.1:9050" | Set proxy for terminal apps (per session). |
| Linux (proxychains) | Add socks5 127.0.0.1 9050 to /etc/proxychains.conf → Run: proxychains4 <command> | Force any app to use SOCKS5 proxy. |
| macOS (system-wide) | sudo networksetup -setsocksfirewallproxy "Wi-Fi" 127.0.0.1 9050 | Apply SOCKS5 proxy to Wi-Fi network. |
| Windows (system-wide) | Use Proxifier / ProxyCap → Add Proxy: 127.0.0.1:9050 (SOCKS5) → Apply Rules | Windows GUI doesn’t support SOCKS globally, requires helper tool. |
⚙️ Runtime Controls
While the program is running you can:
| Action | Result |
| ----------------------- | ----------------------------- |
| x + Enter | Exit the program |
| Enter number (ex: 10) | Change interval to 10 seconds |
🧅 Tor Requirements
The tool uses the Tor SOCKS proxy.
Default Tor port:
127.0.0.1:9050If Tor is not running, the tool will attempt to start it automatically.
🔄 Tor Circuit Rotation
The CLI requests a new Tor circuit every refresh using:
SIGNAL NEWNYMThis requires the Tor Control Port (9051).
Add this to your torrc file:
ControlPort 9051
CookieAuthentication 1Restart Tor after updating.
⚠️ Notes
- IP rotation depends on Tor's internal routing behavior.
- Sometimes the IP may not change instantly.
Example warning:
warning: could not rotate Tor circuit: connect ECONNREFUSED 127.0.0.1:9051👨💻 Authors
KarthiTheHacker
- 🌐 Website: karthithehacker.com
- 🐙 GitHub: @karthi-the-hacker
⚠️ Disclaimer
This tool is intended strictly for educational and privacy testing purposes.
Do NOT use this tool for:
- illegal activities
- bypassing services
- attacking systems without permission
The developer assumes no responsibility for misuse.
