# Network Interface IP Configuration Utility Wiki ## Table of Contents - [Overview](#overview) - [Installation](#installation) - [Main Components](#main-components) - [IP Setup Tab](#ip-setup-tab) - [Tools Tab](#tools-tab) - [Network Scanning](#network-scanning) - [Administrator Privileges](#administrator-privileges) - [Configuration Files](#configuration-files) - [Troubleshooting](#troubleshooting) - [FAQ](#faq) ## Overview The Network Interface IP Configuration Utility is a Python-based desktop application designed to simplify network interface management on Windows systems. It provides an intuitive graphical interface for changing IP addresses, enabling/disabling DHCP, and performing network diagnostics. ## Installation ### Prerequisites - Windows operating system - Python 3.6 or higher - Administrative privileges (required for changing network settings) ### Dependencies Install the required Python packages: ``` pip install -r requirements.txt ``` Optional dependencies (enhanced functionality): - `pythonping`: For improved ping functionality (`pip install pythonping`) - `pysnmp`: For SNMP functionality (`pip install pysnmp`) - `wmi`: For improved network interface detection (`pip install wmi`) - `mac-vendor-lookup`: For MAC address vendor lookup (`pip install mac-vendor-lookup`) ### Running the Application Run the main script: ``` python menu-ip-change.py ``` ## Main Components The application is divided into two main tabs: 1. **IP Setup**: For configuring network interfaces 2. **Tools**: For network diagnostics and scanning Both tabs share a common log area that displays operation results and informational messages. ## IP Setup Tab ### Interface Selection - Use the dropdown menu to select the network interface you want to configure - The current configuration (IP, subnet mask, gateway, and DHCP status) will be displayed ### Setting a Static IP 1. Enter the IP prefix (first three octets) in the "IP Prefix" field 2. Enter the last octet in the "Last Octet" field 3. Set the subnet mask (directly or using CIDR notation) 4. Click "Set Static IP" ### Enabling DHCP 1. Select the network interface 2. Click "Enable DHCP" ### Using IP History - Previously used IP addresses are saved in the IP History dropdown - Select an entry to quickly configure that IP - The application remembers subnet masks for each IP prefix ### Quick Actions - **Restore Previous**: Reverts to the previous configuration - **Refresh Interfaces**: Updates the list of available network interfaces - **Copy buttons**: Quick copy of current IP or gateway to clipboard ## Tools Tab ### Ping Tool - Enter an IP address or hostname in the "Target IP/Host" field - Click "Ping" to send echo requests - Enable "Continuous Ping" to keep pinging until stopped - "Last RTT" shows the most recent ping response time - Use "Stop" to end continuous pinging ### Network Scanner - Define an IP range (Start IP, End IP) or use the CIDR field - Click "Start Scan" to discover active hosts in the specified range - The scan progress bar shows completion status - Results appear in the table with IP addresses and ping times - Click "Get Host Info" to retrieve hostnames and MAC addresses - MAC vendors are automatically identified (when available) ## Network Scanning ### Scan Process 1. Define the IP range to scan 2. Start the scan to discover active hosts 3. Use "Get Host Info" to gather detailed information about discovered hosts ### Scan Results The scan results display: - IP Address - Ping time (ms) - Hostname (when resolved) - MAC Address (when available) - MAC Vendor (manufacturer) ## Administrator Privileges Administrator privileges are required to change network settings on Windows. When you attempt to change network settings, the application will: 1. Launch a separate script with administrator privileges 2. Execute the appropriate network commands 3. Log the results ### How It Works The main application (`menu-ip-change.py`) uses a helper script (`ip-changer-admin.py`) to execute network configuration commands with elevated privileges. This helper script is launched using the Windows `ShellExecuteW` API with the "runas" verb. ## Configuration Files The application stores configuration in several JSON files: ### ip_config.json Stores: - Last used interface - Last used IP prefix - Previous configuration (for restore function) - Last used subnet mask ### ip_history.json Stores a history of previously used IP addresses and their subnet masks. ### ping_targets.json Stores preferred ping targets for each IP prefix. ## Troubleshooting ### Common Issues #### Unable to Change Network Settings - Ensure you have administrator privileges - Check the operation log for specific error messages - Verify the interface name is correct #### Network Scan Not Working - Check firewall settings (may block ping/ICMP) - Ensure the IP range is correctly specified - Try scanning a smaller range #### MAC Address Not Found - Some devices may not respond to ARP - Try using "Get Host Info" to retry MAC detection - Some virtualized interfaces won't return MAC addresses ### Log Messages The application maintains a detailed operation log that can help diagnose issues. Common message types: - INFO: Informational messages - ERROR: Error conditions - SUCCESS: Successful operations - DISCOVERY: Host discovery during scanning - PING: Ping results - MAC/HOSTNAME/VENDOR: Device information ## FAQ ### Q: Does this work on non-Windows systems? A: No, this application is designed specifically for Windows and uses Windows-specific commands. ### Q: Why does it need administrator privileges? A: Changing network settings on Windows requires elevated privileges for security reasons. ### Q: Can I scan large IP ranges? A: Yes, but scanning large ranges (thousands of IPs) may take a significant amount of time. ### Q: How does the continuous ping work? A: It sends ping requests at regular intervals (approximately once per second) until stopped. ### Q: How does the MAC vendor lookup work? A: The application uses the mac-vendor-lookup library, which contains a database of MAC address prefixes and their corresponding manufacturers.