vn_server Home page

Welcome the vn_server Home page.
This Project is hosted on Logo


vn_server is a C++ server which automatically or semi-automatically explores the network environment the host computer exists in. Other network hosts are checked for available services like ftp or HTTP.

Different modules can be used to create, access and modify the information about available hosts.
For example a simple HTTP server is included to provide the gathered information to the user via a simple web browser.

This software can be used for example on LAN-Parties to generate an overview of the network, the available servers and their offered services.

NOTE: The vn_server software is in an early development stage so it's likely to find some bugs or other nasty stuff. Thus I don't take any kind of responsibility for harm or other sort of problems this software may cause.
Anyhow, the main features of the software should work. I'm currently working on improvements and more features.



Download the latest source code release of vn_server at the Sourceforge Project Home.
The current release has only been tested on a Linux 2.4 system, but it should compile on all Unix platforms. Please mail me your experiences !


vn_server is configured by a configuration file called ".vn_server.xml" which must be located in the home directory of the user which executes the server. This file MUST exists, if otherwise vn_server won't start.
The usage of this file is fairly easy. It must comply to the XML-standard and mainly contains the configuration of the modules. The source code download contains a default configuration file which can be used. You just need to set some specific values for some modules. The configuration file contains comments which should explain the correct settings.
It's important to go through the settings of the config file, especially if you want to use the mySQL module

Different modules

Scan Module

This Module plays a vital role within the vn_server application structure. Its task is to scan all available subnets for existing hosts and the services of the hosts. The module utilizes the nmap port scanner for this tasks. Once this data is gathered it's written into the global hosts list.

The functionality of this module is implemented in the vnScanModule class contained in the files vn_scanmodule.h and vn_scanmodule.cpp.

mySQL Module

The mySQL module writes the list of hosts and their provided services into a mySQL database. The mySQL database is kept up-to-date while the server is running.

The functionality of this module is implemented in the vnDBmySQLModule class contained in the files vn_dbmysqlmodule.h and vn_dbmysqlmodule.cpp.

HTTP Module

Via the HTTP-module the gathered information may be provided to a standard web browser. Users just "browse" to the address of the vn_server and can get a complete list of all available hosts and their services. By default the port 2505 is used. So you must insert http://localhost:2505 into your browsers address bar. You can change this port in the configuration file. If you want to use the default HTTP port, just insert 80 there. But keep in mind that only processes stared by root can take ports under 1024.. !
You also may create your own style sheets to modify the look of the HTML output. Please check the vnHTTPModule-section in the configuration file for details. I've planned to extend this so a user can also sort or filter the output.

The functionality of this module is implemented in the vnHTTPModule class contained in the files vn_httpmodule.h and vn_httpmodule.cpp.

Please have a look at the code documentation contained in the doc folder for further reference !
... further modules for nearly every task are planned !

Screen shots

.. at least I've got one screen shot for you ! It shows the HTTP module which just returned the "complete" host list. OK, in fact this list only contains my local machine, there are no other hosts on the net... anyhow, the look is defined by the style sheet blue.css.

Work to do

..quite a lot...

But I think most important is to somehow optimize the scan process and the automatic exploration of new subnets.
I'll also insert a module which provides a high level network interface like CORBA to offer access for other applications. When this is done, I plan to write a graphical client in Python which allows full control over all modules and displays all gathered information.

Links and Contact

If you want to contact me, please drop me an email at Thomas.Hauth at ! I would like to hear from you !