python 3模块,用于收集和显示有关本地网络上的主机和设备的信息

lanscan的Python项目详细描述


 # 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是一个python 3模块,它提供lanscan控制台 命令。它扫描给定的本地网络并显示此网络上的所有设备 网络它还提供了有关当前网络接口和 网络。lanscan使用nmaptcpdumpping 命令。

用法:

$ 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.

显示接口

所有当前接口的列表:

$ 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

显示本地网络

所有本地网络的列表:

$ 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

扫描本地网络

lanscan scan命令有几个参数:

$ 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.

让我们扫描默认网络:

 # 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是用python 3.5编写的,所以很有可能, 3.3版本的python可能可以工作。它是在linux上编写的,并且 我不认为它能在windows或os x上运行。

创建一个virtualenv并调用pip install lanscan。要求 将自动安装在您的虚拟机中。打电话 更简单的是,使用以下命令创建文件/usr/local/bin/lanscan

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

必要的权限

lanscan需要特殊权限才能打开原始套接字。您可以将其作为根用户运行(不推荐)或设置必要的功能(man 7功能)。 所需的功能是cap_net_raw=eip,这需要在使用的python解释器和使用setcaptcpdump二进制文件上设置。setcap无法处理 符号链接,所以需要真正的二进制文件。setcap需要以超级用户权限运行:

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

您可能需要安装必要的软件包。在opensuse上,包名为libcap-progs。在拱门上,所有东西都应该放好。

github存储库位于

https://github.com/sumpfgottheit/lanscan

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java书签JSF2应用程序中的页面   在hibernate标准中编写不同的java   Java正则表达式,删除每行的前导空格   shell如何在Java中从字符串编程相对路径   java在没有存储库的旧项目上返回   java无法写入。在检查我是否有相同的号码后,使用ApachePOI进行xls   java在Android工具栏中显示图标   java如何在QuerydslPredicateExecutor中的包含忽略大小写中使用?   javaspringboot应用程序javax到jakarta迁移问题   java Apache Beam从2个输入源读取数据,在某些情况下无法正确连接数据   带Android的base64 Apache Commons编解码器:找不到方法   HTTP头中CRLF序列的java不正确中和   通用域名格式。太阳在Java 7 update 67中找不到corba类   java使用jUnit测试尚未创建的类/对象