Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

oit63/lanscan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

20 Commits

Repository files navigation

lanscan

 # lanscan scan
 ip name mac alive vendor open ports
=======================================================================================================================================================================
192.168.50.1 router.asus.com 54:a0:50:5b:32:81 True ASUSTek COMPUTER INC. 53, 8443
192.168.50.97 1c:5a:6b:78:48:52 True Philips Electronics Nederland BV 2323, 8000, 49154
192.168.50.107 kindle-4bef0bcfc 74:c2:46:12:5b:01 True Amazon Technologies Inc. 5000, 5555, 7000, 7100, 8008
192.168.50.124 YotaPhone-1b4fe319cb0f71a1 28:c6:71:01:3a:6d True Yota Devices OY

lanscan is a Python 3 module, that provides the lanscan console command. It scans a given local network and presents all devices on this network. It also gives information about present network interfaces and networks. lanscan uses the nmap, tcpdump and ping commands.

Usage:

$ lanscan
Usage: lanscan [OPTIONS] COMMAND [ARGS]...
Options:
 -d Print debug messages to stdout.
 --help Show this message and exit.
Commands:
 interfaces Display a list available interfaces
 networks Display a list of available networks.
 scan Scan a network, defaults to default network.

Show interfaces

A list of all current interfaces:

$ lanscan interfaces
# interface driver hardware
===================================================================================
1 br-e0e27b4e551f
2 docker0
3 enp0s20f0u1u4 r8152 Realtek RTL8152/RTL8153 Based USB Ethernet Adapters
4 lo
5 wlp1s0 iwlwifi Intel(R) Wireless WiFi driver for Linux

Show local networks

A list of all local networks:

$ lanscan networks
# default cidr interface
===============================================
1 127.0.0.0/8 lo
2 172.17.0.0/16 docker0
3 172.18.0.0/16 br-e0e27b4e551f
4 * 192.168.50.0/24 enp0s20f0u1u4

Scan a local network

The lanscan scan command has a few parameters:

$ lanscan scan --help
Usage: lanscan scan [OPTIONS]
 Scan a network, defaults to default network.
Options:
 -n, --network TEXT The network to scan in CIDR notation or the
 network number from 'lanscan networks'
 --vendor / --no-vendor Vendor lookup based on Mac addres. Requires
 internet connection.
 --portscan / --no-portscan Let nmap do a simple connect-portscan.
 --help Show this message and exit.

Let's scan the default network:

 # lanscan scan
 ip name mac alive vendor open ports
=======================================================================================================================================================================
192.168.50.1 router.asus.com 54:a0:50:5b:32:81 True ASUSTek COMPUTER INC. 53, 8443
192.168.50.97 1c:5a:6b:78:48:52 True Philips Electronics Nederland BV 2323, 8000, 49154
192.168.50.107 kindle-4bef0bcfc 74:c2:46:12:5b:01 True Amazon Technologies Inc. 5000, 5555, 7000, 7100, 8008
192.168.50.124 YotaPhone-1b4fe319cb0f71a1 28:c6:71:01:3a:6d True Yota Devices OY

Installation

lanscan has been written using Python 3.5, so the chances are good, that Python versions from 3.3 may work. It has been written on linux and I don't think, that it will work on Windows or OS X.

Create a virtualenv and call pip install lanscan. The requirements will automatically be installed within your virtualen. To make calling easier, create the file /usr/local/bin/lanscan with:

#!/bin/bash
source ${PATH_TO_YOUR_VIRTUALENV}/bin/activate
lanscan $@

Necessary permissions

lanscan needs special permissions, to be able to open a raw socket. You may run it as root - not recommended - or you set the necessary capabilities (man 7 capabilities). The capability needed is cap_net_raw=eip and this needs to be set on the python interpreter used and the tcpdump binary using setcap. setcap cannot work on symlinks, so the real binary is needed. setcap needs to be run with superuser privileges:

setcap cap_net_raw=eip /path/to/virtualenv/bin/python3
setcap cap_net_raw=eip $(which tcpdump)

You may need to install the necessary packages. On OpenSuse, the package is called libcap-progs. On Arch, everything should be in place.

The github repository can be found at

https://github.com/sumpfgottheit/lanscan

About

Python 3 module to collect information about the hosts and devices on the local network

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Python 100.0%

AltStyle によって変換されたページ (->オリジナル) /