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使用nmap、tcpdump和ping 命令。
用法:
$ 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解释器和使用setcap的tcpdump二进制文件上设置。setcap无法处理 符号链接,所以需要真正的二进制文件。setcap需要以超级用户权限运行:
setcap cap_net_raw=eip /path/to/virtualenv/bin/python3 setcap cap_net_raw=eip $(which tcpdump)
您可能需要安装必要的软件包。在opensuse上,包名为libcap-progs。在拱门上,所有东西都应该放好。
github存储库位于