网站运营
位置:首页>> 网站运营>> linux下快速列出局域网中所有主机名(计算机名)的脚本

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

作者:RDX  发布时间:2023-07-22 14:13:38 

标签: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()

来源:https://www.cnblogs.com/jz3025/archive/2020/07/29/13395728.html

0
投稿

猜你喜欢

  • Vmware CentOS7最小化安装Linux的学习使用什么版本比较合适?个人认为是从命令行开始是最好的,因为以后操作服务器(做系统运维)
  • 2020年4月23日,今天Windows 上的 Ubuntu 20.04 允许使用 Ubuntu Terminal 并运行 Ubuntu 命
  • 2008年我国网络零售行业首次突破了三个“1”——全国网络零售消费者数量突破了1个亿;交易额突破了1千亿元;在全国社会消费品零售总额中所占比
  • mkdir命令语法linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前
  • 有同学说搞wm是浪费时间,那我来发点有用的东西。一切关于linux和windows,cli和X的辩论请绕行。本系统由以下软件组成:getma
  • 其实学生站长是幸福的,因为你们没有经济的强大压力。其实学生站长前途是光明的,因为你们有的是青春年华。其实学生站长是充满活力的,因为新点子,新
  • Linux动态库函数的详解加载动态库void *dlopen(const char *filename, int flag);flag的可能
  • 什么是ssh管理员可以通过远程登陆的方式,对通过网相连的分散于各处的多台主机进行管理操作。管理员可以对远程主机进行如下操作: 远程
  • 6. 修改 advanced.acl.population 以设定管理者帐号# cd /usr/local/twig-2.7.5/setup
  • 一、域名过期后第一阶段域名过期后1~45天内,将处于注册商保留状态whois英文状态:REGISTRAR-HOLD二、域名过期后第二阶段 注
  • 自己的第一篇博文,由于时(shuǐ)间(píng)原(yǒu)因(xiàn),不知道怎么排版好看,所以诸位就暂且将就一下吧。注:笔者这里用的
  • 网赚常见英文信范例网赚中,有时难免遇到问题需要跟外国网赚公司交流,这就要求你会写英文信。 以下列出了几个最常见的问题及范例信写法,希望对网赚
  • 对于 Linux 管理员来说这是一个重要(美妙)的话题,所以每个人都必须知道,并练习怎样才能更高效的使用它们。在 Linux 中,无论何时当
  • 还记得诺基亚的成名广告语吗——“科技以人为本”。您可千万别小看这句话,西方科技之所以如此发达,很大程度上就源自于“以人为本”理念的贯彻。小到
  • 利用强大的技术,可以把基于wordpress的网站做成各种各样的形式,这除了要求wordpress主题开发人员精通html,PHP,JS,C
  • Windows2000 含有很多的安全功能和选项,如果你合理的配置它们,那么windows 2000将会是一个很安全的操作系统。初级安全篇
  • 前言本文主要介绍了关于ubantu 16.4 Hadoop完全分布式搭建的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的
  • 本以为很火星,后来没有发现其他网站谈论此事,所以决定发此新闻:带来的好处我非常喜欢,再也不用搜索时候强迫用鼠标了!说明:J:下K:上O 或
  • 北京时间9月30日下午消息,国庆前夕,谷歌中国正式上线“国庆北京交通限行地图”,图示北京市在国庆期间
  • Google AdWords账户可以制作25个广告系列,而每个系列可以制作100个广告组,但其实每个广告系列中可以添加2000甚至3000的
手机版 网站运营 asp之家 www.aspxhome.com