Package: 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 OYlanscanis a Python 3 module, that provides thelanscanconsole
command. It scans a given local network and presents all devices on this
network. It also gives information about present network interfaces and
networks.lanscanuses thenmap,tcpdumpandpingcommands.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 interfacesA 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 LinuxShow local networksA 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   enp0s20f0u1u4Scan a local networkThelanscan scancommand 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 OYInstallationlanscanhas 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 callpip install lanscan. The requirements
will automatically be installed within your virtualen. To make calling
easier, create the file/usr/local/bin/lanscanwith:#!/bin/bash
source ${PATH_TO_YOUR_VIRTUALENV}/bin/activate
lanscan $@Necessary permissionslanscanneeds 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 iscap_net_raw=eipand this needs to be set on the python interpreter used and thetcpdumpbinary usingsetcap.setcapcannot work on
symlinks, so the real binary is needed.setcapneeds 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 calledlibcap-progs. On Arch, everything should be in place.The github repository can be found athttps://github.com/sumpfgottheit/lanscan