Skip to content

cergina/WhereDaIp

Repository files navigation

WhereDaIp 0.9 (in development)

WhereDaIp is a SW created as a part of diploma thesis research on FIIT STU by student Bc. Maroš Čergeť in the academic year of 2021/2022.

Add APIs of geolocation services to this software, add also providers of suspicious lists and other lists of added benefit (as TOR exit nodes, VPN servers list) and perform requests towards one or more IP addresses either via form or choose from a suspicious list you submitted. Look at graphs and maps to visually see what are the results of replies fused with other information.


The added value of this software is that once you add the rules to this SW via REST API for requests on those sites, this delivers you the results for future requests in a costistent manner. Another added benefit is that, on those services you usually have some limited number of requests and that applies on to repeated requests. This SW stores requested IP adresses and returns locally stored data without spending requests on those services. It also benefits from additional lists and compares the results to them to show the user if the IP address is hidden in a way or was a part of attack. Visualizations are a final benefit


Install instructions

Download this repository

Install MongoDB Community

Install Node.js

Create .env file according to instructions in config/config-nonRestricted.js

npm install


Run instructions

npm run devStart

Open browser and enter "localhost:13000" (if you used the same port in config)


Features

+ [X] Ability to add GeoDb services via REST API
# [-] Test if: Are services good for paid services? (Result: irelevant)
+ [X] Get info about actual GeoDb services in the db
+ [X] Get info about actual IPs stored in the db
+ [X] Fuse IPs in database into one bigger part
+ [X] Ability to make request from WEB on one IP
+ [X] Ability to make request from WEB on more IPs
+ [X] Ability to receive replies
+ [X] Ability to process a reply from JSON
+ [X] Ability to process multiple replies
+ [X] Ability to save data from replies
- [-] Ability to make a request for an IP via REST API (Not in this scope)
+ [X] Be able to add providers of hidden IPs lists (TOR exit nodes, VPN serves)
+ [X] Be able to receive, process and save such list
+ [X] Be able to add providers of suspicious IPs lists
+ [X] Be able to receive, process and save list
+ [X] Fuse combined IPs geolocation outputs with additional lists
+ [X] Send suspicious IPs lists to geolocation
+ [X] Ignore IPs in the same /24 subnet during requests to save requests
+ [X] Implement limitations in order not to overuse free API plans
+ [X] Implement visualizations of actual state
+ [X] Create statistics in form of graphs
+ [X] Create statistics in form of Earth model
! [~] Look for bugs and fix'em (Continuos)

Code structure explanation

/config

environment variables and files init

/controllers

separated logic corresponding to routerss

/models

MongoDb data schemas

/rest-tests

`: files with specified REST requests to test application

/routes

routers that specifiy at which url should which controller respond

/services

supporting services for sending requests, help with logging and dates

/views

forms in ejs that show content to the visitor, prevents duplicity

app.js

specification of used engines, frameworks, view-engines, routes and listening ports

**.env

this file is supposed to be created via instructions in config file**

// note to myself: git log --all --decorate --oneline --graph

About

FIIT STU | Diploma thesis | NodeJS WebApp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published