linux下快速列出局域网中所有主机名(计算机名)的脚本

 更新时间:2020年07月29日 14:18:19   作者:RDX  
这篇文章主要介绍了linux下快速列出局域网中所有主机名(计算机名)的脚本,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

最近有列出局域网中所有主机名的需求(SMB协议里的),但是findsmb命令总是列不全,搜了搜网上也没什么现成的解决方案,于是自己写了个python脚本

脚本会扫描局域网arp表中所有ip,并尝试解析其主机名,这样可以较为彻底地列出相关信息。

注意,运行这个脚本需要samba-common-bin和arp-scan这两个包,没有的请先apt install它们。

用法:直接运行或用python3运行,然后输入需要扫描的网卡名(network interface)(不知道的运行ifconfig可查,一般是ens33、eth0等,出现在该命令输出最左列),然后回车等待,可能需要运行几分钟。

需要root权限运行!!

#!/usr/bin/env python3

import os

def shellrun(cmd):
    a = os.popen(cmd)
    b = a.read()
    c = b.split('\n')
    return c

def cutarpresult(lst):
    a = []
    b = []
    for line in lst[2:]:
        if line != '':
            a.append(line)
        else:
            break
    for line in a:
        b.append(line.split('\t')[0])
    return b

def commandmaker(ip):
    return 'nmblookup -A ' + ip

def getrst(iplist):
    rst = []
    for ip in iplist:
        rst.append(shellrun(commandmaker(ip)))
    return rst

def washrst(rst):
    rtn = []
    for line in rst:
        if line[1].split(' ')[1] != 'reply':
            rtn.append(line[:-1])
    return rtn

def main():
    interface = input('which interface to use: ')
    iplist = cutarpresult(shellrun('arp-scan -I ' + interface + ' -l'))
    for rs in washrst(getrst(iplist)):
        for line in rs:
            print(line)

if __name__ == '__main__':
    main()

到此这篇关于linux下快速列出局域网中所有主机名(计算机名)的脚本的文章就介绍到这了,更多相关linux 列出局域网中所有主机名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux如何查看nginx启动路径

    linux如何查看nginx启动路径

    这篇文章主要介绍了linux如何查看nginx启动路径问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Linux 常用命令操作大全(推荐收藏)

    Linux 常用命令操作大全(推荐收藏)

    这篇文章主要介绍了Linux 常用命令操作大全,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • CentOS6环境下搭建路由器的方法

    CentOS6环境下搭建路由器的方法

    这篇文章主要为大家详细介绍了CentOS6如何实现路由器功能,CentOS6环境下搭建路由器的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Ubuntu下Telnet服务器的配置方法

    Ubuntu下Telnet服务器的配置方法

    这篇文章主要介绍了Ubuntu下Telnet服务器的配置方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • 深入浅析Linux轻量级自动运维工具-Ansible

    深入浅析Linux轻量级自动运维工具-Ansible

    这篇文章主要介绍了Linux轻量级自动运维工具-Ansible的相关知识,需要的朋友可以参考下
    2017-09-09
  • Linux系统开机从BIOS到登录环境过程

    Linux系统开机从BIOS到登录环境过程

    这篇文章主要介绍了Linux系统开机从BIOS到登录环境过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • CentOS中yum 源的配置与使用详解

    CentOS中yum 源的配置与使用详解

    这篇文章主要介绍了CentOS中yum 源的配置与使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。
    2016-12-12
  • linux进行硬盘分区挂载的实现方法

    linux进行硬盘分区挂载的实现方法

    这篇文章主要介绍了linux进行硬盘分区挂载的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 基于linux命令提取文件夹内特定文件路径

    基于linux命令提取文件夹内特定文件路径

    这篇文章主要介绍了基于linux命令提取文件夹内特定文件路径,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • apache2.2 支持.net 3.5的设置方法

    apache2.2 支持.net 3.5的设置方法

    一直在为asp.net程序的打包发布头疼,甚至想过把程序装好放到vware里!但为什么一直没有想到apache这位大哥呢?!以至今天才google apache+asp.net。
    2009-10-10

最新评论