mirror of https://github.com/franjsco/lscanbot
update dirs/readme
This commit is contained in:
parent
7137d41ac4
commit
517d3ea4e9
69
README.md
69
README.md
|
@ -1,12 +1,37 @@
|
||||||
# lscanbot
|
<h1 align="center">Welcome to lscanbot 📱</h1>
|
||||||
|
<p>
|
||||||
|
<a href="https://github.com/franjsco/lscanbot/graphs/commit-activity" target="_blank">
|
||||||
|
<img alt="Maintenance" src="https://img.shields.io/badge/Maintained%3F-yes-green.svg" />
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/franjsco/lscanbot/blob/master/LICENSE" target="_blank">
|
||||||
|
<img alt="License: GPL--3.0" src="https://img.shields.io/github/license/franjsco/lscanbot" />
|
||||||
|
</a>
|
||||||
|
<a href="https://twitter.com/franjsco" target="_blank">
|
||||||
|
<img alt="Twitter: franjsco" src="https://img.shields.io/twitter/follow/franjsco.svg?style=social" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
An opensource telegram bot to find devices on your LAN.
|
> A telegram bot to find devices on your LAN.
|
||||||
|
|
||||||
<img src="screenshot.png" height="400">
|
<img src="screenshot.png">
|
||||||
|
|
||||||
The bot is written in Node.js.
|
## Install
|
||||||
|
|
||||||
|
### Step by step
|
||||||
|
1. Install **arp-scan** package on your GNU/Linux system.
|
||||||
|
2. Configure **arp-scan** to use without sudo. (`chmod u+s`)
|
||||||
|
3. Clone this repository on your system.
|
||||||
|
4. Install dependecies with `npm install`.
|
||||||
|
5. Create new bot with **@BotFather** on Telegram.
|
||||||
|
6. Insert your **API Token** (app.token) into `config.json`.
|
||||||
|
7. Insert your **Telegram ID** (app.authorizedUsers) into `config.json`.
|
||||||
|
8. Insert your **Network Device** (scanner.interface) into `config.json`.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
Start server:
|
||||||
|
```sh
|
||||||
|
npm run start
|
||||||
|
```
|
||||||
|
|
||||||
**lscanbot** scans devices with arp-scan, showing only devices registered in the inventory.
|
**lscanbot** scans devices with arp-scan, showing only devices registered in the inventory.
|
||||||
|
|
||||||
|
@ -16,8 +41,7 @@ Before scanning, you must insert the devices into the inventory (to track it):
|
||||||
|
|
||||||
(use `;` to split arguments)
|
(use `;` to split arguments)
|
||||||
|
|
||||||
|
example: (/add Motorola Moto G6; Frank; AB:CC:MY:MC:AD)
|
||||||
example: (/add My device; Me; AB:CC:MY:MC:AD)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,32 +55,23 @@ It will send back the devices connected to your network.
|
||||||
### Remove
|
### Remove
|
||||||
> /remove [MAC Address]
|
> /remove [MAC Address]
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
In order to use this bot is required that the code is hosted on a GNU/Linux system connected to your LAN (Raspberry Pi would be a good choice)
|
## Author
|
||||||
|
|
||||||
|
👤 **franjsco (Francesco Esposito)**
|
||||||
|
|
||||||
### Prerequisites
|
* Website: https://franjsco.github.io/
|
||||||
- Node.js
|
* Twitter: [@franjsco](https://twitter.com/franjsco)
|
||||||
- npm
|
* Github: [@franjsco](https://github.com/franjsco)
|
||||||
- GNU/Linux
|
|
||||||
|
|
||||||
### Step by step
|
## Show your support
|
||||||
1. Install **arp-scan** package on your linux system.
|
|
||||||
2. Configure arp-scan to use without sudo.
|
|
||||||
(`chmod u+s`)
|
|
||||||
3. Clone this repository on your system.
|
|
||||||
4. Install dependecies with `npm install`.
|
|
||||||
5. Create new bot with BotFather on Telegram.
|
|
||||||
6. Insert your **token** (app.token) into `config.json`.
|
|
||||||
7. Insert your **TelegramID** (app.authorizedUsers) into `config.json`.
|
|
||||||
8. Insert your **network device** (scanner.interface) into `config.json`.
|
|
||||||
8. Start with `npm start`.
|
|
||||||
|
|
||||||
|
Give a ⭐️ if this project helped you!
|
||||||
|
|
||||||
### License
|
## 📝 License
|
||||||
|
|
||||||
GPLv3
|
Copyright © 2020 [franjsco (Francesco Esposito)](https://github.com/franjsco).<br />
|
||||||
|
This project is [GPL--3.0](https://github.com/franjsco/lscanbot/blob/master/LICENSE) licensed.
|
||||||
|
|
||||||
---
|
***
|
||||||
Made with ❤️ by Francesco Esposito ([@franjsco](https://github.com/franjsco))
|
_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_
|
File diff suppressed because it is too large
Load Diff
16
package.json
16
package.json
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "lscanbot",
|
"name": "lscanbot",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "A telegram bot to scan your LAN.",
|
"description": "A telegram bot to find devices on your LAN.",
|
||||||
"main": "index.js",
|
"main": "server.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
"start": "node index.js"
|
"start": "node src/server.js"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -23,11 +23,11 @@
|
||||||
"bunyan": "^1.8.12",
|
"bunyan": "^1.8.12",
|
||||||
"network-list": "^1.1.5",
|
"network-list": "^1.1.5",
|
||||||
"sqlite3": "^4.0.2",
|
"sqlite3": "^4.0.2",
|
||||||
"telebot": "^1.2.6"
|
"telebot": "^1.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint": "^5.6.0",
|
"eslint": "^5.16.0",
|
||||||
"eslint-config-airbnb-base": "^13.1.0",
|
"eslint-config-airbnb-base": "^13.2.0",
|
||||||
"eslint-plugin-import": "^2.14.0"
|
"eslint-plugin-import": "^2.20.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
BIN
screenshot.png
BIN
screenshot.png
Binary file not shown.
Before Width: | Height: | Size: 527 KiB After Width: | Height: | Size: 461 KiB |
|
@ -1,6 +1,6 @@
|
||||||
const sqlite3 = require('sqlite3').verbose();
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const appConfig = require('./config.json');
|
const appConfig = require('../config.json');
|
||||||
|
|
||||||
function connectDB() {
|
function connectDB() {
|
||||||
const db = new sqlite3.Database('data.db');
|
const db = new sqlite3.Database('data.db');
|
|
@ -1,5 +1,5 @@
|
||||||
const bunyan = require('bunyan');
|
const bunyan = require('bunyan');
|
||||||
const appConfig = require('./config.json');
|
const appConfig = require('../config.json');
|
||||||
|
|
||||||
const log = bunyan.createLogger({
|
const log = bunyan.createLogger({
|
||||||
name: appConfig.app.name,
|
name: appConfig.app.name,
|
|
@ -1,5 +1,5 @@
|
||||||
const arpScanner = require('arpscan/promise');
|
const arpScanner = require('arpscan/promise');
|
||||||
const appConfig = require('./config.json');
|
const appConfig = require('../config.json');
|
||||||
const db = require('./db');
|
const db = require('./db');
|
||||||
|
|
||||||
function scanNetwork(userId) {
|
function scanNetwork(userId) {
|
|
@ -1,5 +1,5 @@
|
||||||
const TeleBot = require('telebot');
|
const TeleBot = require('telebot');
|
||||||
const appConfig = require('./config.json');
|
const appConfig = require('../config.json');
|
||||||
const scanner = require('./scanner.js');
|
const scanner = require('./scanner.js');
|
||||||
const utils = require('./utils.js');
|
const utils = require('./utils.js');
|
||||||
const logger = require('./logger.js');
|
const logger = require('./logger.js');
|
|
@ -1,4 +1,4 @@
|
||||||
const appConfig = require('./config.json');
|
const appConfig = require('../config.json');
|
||||||
|
|
||||||
function isAuthorizedUser(userId) {
|
function isAuthorizedUser(userId) {
|
||||||
return appConfig.app.authorizedUsers.includes(userId);
|
return appConfig.app.authorizedUsers.includes(userId);
|
Loading…
Reference in New Issue