View on GitHub

Angry IP Scanner

Fast and friendly network scanner

Contribute

The easiest way to extend functionality of Angry IP Scanner is to write a plugin.

Angry IP Scanner’s source code is hosted is hosted on Github. Forking and pull-requests are very welcome! If you want to get an idea of what to do, check the bug reports.

In order to get the source code, the following command must be run (make sure you have git installed):

git clone git://github.com/angryziber/ipscan.git

This command will fetch the current source code of the program with full history into local directory named ‘ipscan’. Or just browse the code repository on Github.

If the source of particular release is required, then you can later switch to particular tag using:

git checkout tag-name

where tag-name is the released version number (eg 3.0-beta4), for full list of available tags use:

git tag

Building

In order to build the binaries, you need only to run ‘ant’ in the ‘ipscan’ directory. Ant will use the standard build.xml script there and compile, test, and package the program for all platforms. Note: some packaging features were tested only on Linux.

The source code tree also includes the preconfigured Intellij IDEA project for convenience. After opening the project in IDEA, make sure you add to the build path the appropriate directory from src-platform according to the OS you are currently using as well as the correct swt jar file from ext/swt. Then, it can be run using the net.azib.ipscan.Main class.

Translations

If you know some language other than English well, then please help translating Angry IP Scanner into that language.

For that, you need to take the latest resources/messages.properties file, copy it with the ISO 2-letter language suffix (eg messages_et.properties), translate all the messages and send to me by email (or make a pull request).

To test your translations, run Angry IP Scanner from the command-line (assuming that the translated file is in the same directory as the original jar or exe):

java -cp . -jar ipscan-xxx.jar

Source structure

Directories

Java packages

Angry IP Scanner source code is in the net.azib.ipscan Java package.

Dependency injection

Angry IP Scanner uses dependency injection pattern in its design, provided by the Dagger 2, which was chosen for working at compile time. PicoContainer is not used anymore.

Dagger uses javax.inject annotations, thus all classes that can be injected must have an @Inject-annotated constructor. Dependent objects that are required to be provided by the injection are then either annotated as fields or constructor parameters.

Dagger then resolves these dependencies automatically, so that the classes themselves don’t have to worry where their dependencies come from. This eases both development and unit testing of the code.

Components are registered in the ComponentRegistry class.