|
| 1 | +# 🖥️ IP Address Lookup Tool (PowerShell GUI) |
| 2 | + |
| 3 | +A user-friendly PowerShell application for performing IP address hostname lookups via a graphical interface. Built by **Ryan Johnson**. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## 📌 Features |
| 8 | + |
| 9 | +- ✅ **Three operational modes:** |
| 10 | + - **Single IP Mode:** Look up a single IP address manually |
| 11 | + - **Text File Mode:** Upload a `.txt` file of IPs and bulk check all entries |
| 12 | + - **Manual Bulk Mode:** Manually add IPs one-by-one and bulk check them |
| 13 | + |
| 14 | +- 💾 **CSV Export Support:** Lookup results are saved as a structured CSV file |
| 15 | + |
| 16 | +- 🎨 **Intuitive GUI:** Made with Windows Forms (`System.Windows.Forms`) for a simple and accessible user interface |
| 17 | + |
| 18 | +- 🛠️ **Input Validation:** Built-in regex filter to verify valid IPv4 addresses |
| 19 | + |
| 20 | +- 🔒 **Safe File Handling:** Cleans whitespace in text file mode and gracefully handles invalid input or unresolved hostnames |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +## 🖱️ GUI Overview |
| 25 | + |
| 26 | +| Control | Function | |
| 27 | +|--------|----------| |
| 28 | +| **Check Text File** | Load a `.txt` file containing IP addresses to look up | |
| 29 | +| **Check Single IP** | Input one IP address to resolve | |
| 30 | +| **Check Bulk Manually** | Add IPs one-by-one via textbox and export all at once | |
| 31 | +| **Browse Buttons** | Browse and select input/output paths | |
| 32 | +| **Run** | Executes the lookup and writes results to the designated output | |
| 33 | +| **Add/Clear (Manual Mode)** | Add IPs to the list or reset the entry array | |
| 34 | +| **Output Box** | Displays real-time status messages and lookup results | |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +## ⚙️ How It Works |
| 39 | + |
| 40 | +- Uses `[System.Net.Dns]::GetHostEntry()` to resolve each IP to a hostname |
| 41 | +- Catches and logs resolution errors (including invalid formats) |
| 42 | +- Saves output as a `.csv` file at the selected path |
| 43 | + |
| 44 | +--- |
| 45 | + |
| 46 | +## 🧠 Built With |
| 47 | + |
| 48 | +- PowerShell |
| 49 | +- Windows Forms GUI (`System.Windows.Forms`) |
| 50 | +- .NET assemblies |
| 51 | +- Regex for IP validation |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +## 📂 File Output Example |
| 56 | + |
| 57 | +```csv |
| 58 | +"IPAddress","Hostname" |
| 59 | +"8.8.8.8","dns.google" |
| 60 | +"1.1.1.1","one.one.one.one" |
| 61 | +"256.256.256.256","Invalid IP Format" |
0 commit comments