Top Related Projects
Nmap - the Network Mapper. Github mirror of official SVN repository.
TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.
The Swiss Army knife for 802.11, BLE, HID, CAN-bus, IPv4 and IPv6 networks reconnaissance and MITM attacks.
Scapy: the Python-based interactive packet manipulation program & library.
A fast port scanner written in go with a focus on reliability and simplicity. Designed to be used in combination with other tools for attack surface discovery in bug bounties and pentests
Quick Overview
Angry IP Scanner (ipscan) is an open-source, cross-platform network scanner designed to be fast and easy to use. It can scan IP addresses and ports as well as has many other features. This tool is widely used for network discovery, security auditing, and system administration tasks.
Pros
- Fast and efficient scanning of IP ranges and ports
- Cross-platform compatibility (Windows, macOS, Linux)
- Extensible through plugins
- User-friendly graphical interface
Cons
- May be flagged by antivirus software as potentially harmful
- Limited advanced features compared to some commercial network scanning tools
- Can be misused for malicious purposes if not used responsibly
- Requires Java Runtime Environment to be installed
Getting Started
To get started with Angry IP Scanner:
- Download the appropriate version for your operating system from the official website.
- Install Java Runtime Environment if not already installed.
- Run the installer or extract the downloaded archive.
- Launch the application.
- Enter an IP range or hostname in the "IP Range" field.
- Click the "Start" button to begin scanning.
Note: Always ensure you have permission to scan the target network before using this tool.
Competitor Comparisons
Nmap - the Network Mapper. Github mirror of official SVN repository.
Pros of Nmap
- More comprehensive scanning capabilities, including OS detection and version scanning
- Highly customizable with scripting engine for advanced users
- Extensive documentation and large community support
Cons of Nmap
- Steeper learning curve, especially for command-line interface
- Can be slower for basic network scans compared to IPScan
- More complex setup and installation process
Code Comparison
Nmap (C++)
static void nmap_mass_rdns(Target **targets, int num_targets) {
std::vector<Target *> targets_without_rdns;
for (int i = 0; i < num_targets; i++) {
if (targets[i]->TargetName() == NULL)
targets_without_rdns.push_back(targets[i]);
}
}
IPScan (Java)
public void scan() {
for (int i = feederIndex; i < feeders.size(); i++) {
Feeder feeder = feeders.get(i);
while (feeder.hasNext()) {
String ip = feeder.next();
scan(ip);
}
}
}
The code snippets show different approaches to scanning. Nmap's C++ code focuses on reverse DNS lookups for targets, while IPScan's Java code demonstrates a simpler iteration through IP addresses for scanning. This reflects Nmap's more advanced capabilities and IPScan's straightforward approach to network scanning.
TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.
Pros of masscan
- Extremely fast scanning capabilities, able to scan the entire Internet in under 6 minutes
- Asynchronous operation allows for scanning millions of IPs simultaneously
- Customizable output formats, including XML, JSON, and binary
Cons of masscan
- Less user-friendly interface compared to ipscan's GUI
- Limited protocol support, primarily focused on TCP SYN scanning
- May require more technical expertise to use effectively
Code Comparison
masscan:
for (i = 0; i < range; i++) {
ip = rangelist_pick(&targets, i);
tcpcon_init(&tcpcon[i], ip, port);
tcpcon_handle_events(&tcpcon[i]);
}
ipscan:
for (InetAddress address : range) {
ScanningResult result = new ScanningResult(address);
for (Fetcher fetcher : fetchers) {
fetcher.fetch(result);
}
}
masscan's code demonstrates its low-level C implementation for efficient scanning, while ipscan uses Java with a more modular approach, allowing for easier extension of scanning capabilities.
Both projects serve different use cases: masscan is ideal for large-scale, high-speed network scanning, while ipscan provides a more accessible tool for general-purpose IP scanning and network discovery.
The Swiss Army knife for 802.11, BLE, HID, CAN-bus, IPv4 and IPv6 networks reconnaissance and MITM attacks.
Pros of bettercap
- More comprehensive network analysis and manipulation tool
- Supports a wider range of protocols and attack vectors
- Modular architecture allows for easy extension and customization
Cons of bettercap
- Steeper learning curve due to more complex features
- Requires more system resources to run effectively
- May be overkill for simple network scanning tasks
Code comparison
ipscan (Java):
public void scan(final ScanningResultList results) {
for (int i = 0; i < feederResults.size(); i++) {
if (isInterrupted()) break;
InetAddress address = feederResults.get(i);
scanningContext.setScanningProgress(i);
results.registerAtIndex(i, address);
performScan(results, i);
}
}
bettercap (Go):
func (mod *Discovery) Start() error {
if err := mod.Configure(); err != nil {
return err
}
return mod.SetRunning(true, func() {
mod.waitGroup.Add(1)
defer mod.waitGroup.Done()
mod.discoverProbes()
})
}
Summary
ipscan is a simpler, more focused tool for IP scanning, while bettercap offers a broader range of network analysis and manipulation capabilities. ipscan may be more suitable for basic network discovery tasks, while bettercap is better suited for advanced network security testing and analysis.
Scapy: the Python-based interactive packet manipulation program & library.
Pros of Scapy
- More powerful and flexible for packet manipulation and network analysis
- Supports a wider range of protocols and network layers
- Can be used as a library in Python scripts for custom network tools
Cons of Scapy
- Steeper learning curve due to its extensive features and Python-based interface
- Slower performance for large-scale scans compared to IPScan
- Requires more setup and dependencies to run
Code Comparison
Scapy (Python):
from scapy.all import *
target_ip = "192.168.1.1"
icmp_packet = IP(dst=target_ip)/ICMP()
response = sr1(icmp_packet, timeout=2)
if response:
print(f"{target_ip} is up")
IPScan (Java):
import net.azib.ipscan.core.ScanningResult;
import net.azib.ipscan.core.Scanner;
Scanner scanner = new Scanner(new ScanningResult());
scanner.scan("192.168.1.1");
if (scanner.isAlive()) {
System.out.println("192.168.1.1 is up");
}
Both tools can perform network scanning, but Scapy offers more granular control over packet creation and analysis, while IPScan provides a simpler interface for basic IP scanning tasks. Scapy is better suited for advanced network analysis and custom tool development, whereas IPScan is more user-friendly for quick and straightforward network discovery.
A fast port scanner written in go with a focus on reliability and simplicity. Designed to be used in combination with other tools for attack surface discovery in bug bounties and pentests
Pros of naabu
- Faster scanning speed due to its Go-based implementation
- More advanced port scanning techniques, including SYN, CONNECT, and UDP scans
- Better suited for large-scale network discovery and security assessments
Cons of naabu
- Command-line interface may be less user-friendly for beginners
- Lacks the graphical user interface provided by ipscan
- May require more system resources for intensive scans
Code Comparison
naabu:
func (s *Scanner) ScanPort(port int) bool {
conn, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", s.ip, port), s.timeout)
if err != nil {
return false
}
conn.Close()
return true
}
ipscan:
public boolean isPortOpen(int port) {
try (Socket socket = new Socket()) {
socket.connect(new InetSocketAddress(ip, port), timeout);
return true;
} catch (IOException e) {
return false;
}
}
Both projects implement port scanning functionality, but naabu is written in Go, while ipscan is written in Java. naabu's implementation may offer better performance due to Go's concurrency features, while ipscan's Java-based approach provides cross-platform compatibility and integration with existing Java ecosystems.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Angry IP Scanner
This is the source code of Angry IP Scanner, licensed with GPL v2. Official site
The code is written mostly in Java (currently, source level 11). SWT library from Eclipse project is used for GUI that provides native components for each supported platform.
The project runs on Linux, Windows and macOS.
Helping / Contributing
As there are millions of different networks, configurations and devices, please help with submitting a Pull Request if something doesn't work as you expect (especially macOS users). Any problem is easy to fix if you have an environment to reproduce it ð
For that, download Intellij IDEA community edition and open the cloned project. Then, you can run Angry IP Scanner in Debug mode and put a breakpoint into the desired Fetcher class.
Building
Use Gradle for building a package for your desired platform:
./gradlew
or make
in the project dir for the list of available targets.
./gradlew current
would build the app for your current platform
The resulting binaries will be put into the build/libs
directory.
Run jar files with java -jar <jar-file>
.
Deb and rpm packages can be built only on Linux (tested on Ubuntu). Windows installer can be built on Windows only.
./gradlew all
will build packages for all OS (tested on Ubuntu only, see dependencies below).
Dependencies
On Ubuntu install the following packages:
sudo apt install openjdk-11-jdk rpm fakeroot
Install OpenJDK on other platforms as you usually do it.
Top Related Projects
Nmap - the Network Mapper. Github mirror of official SVN repository.
TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.
The Swiss Army knife for 802.11, BLE, HID, CAN-bus, IPv4 and IPv6 networks reconnaissance and MITM attacks.
Scapy: the Python-based interactive packet manipulation program & library.
A fast port scanner written in go with a focus on reliability and simplicity. Designed to be used in combination with other tools for attack surface discovery in bug bounties and pentests
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot