欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

linux下快速列出局域網(wǎng)中所有主機(jī)名(計(jì)算機(jī)名)的腳本

 更新時(shí)間:2020年07月29日 14:18:19   作者:RDX  
這篇文章主要介紹了linux下快速列出局域網(wǎng)中所有主機(jī)名(計(jì)算機(jī)名)的腳本,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

最近有列出局域網(wǎng)中所有主機(jī)名的需求(SMB協(xié)議里的),但是findsmb命令總是列不全,搜了搜網(wǎng)上也沒什么現(xiàn)成的解決方案,于是自己寫了個(gè)python腳本

腳本會掃描局域網(wǎng)arp表中所有ip,并嘗試解析其主機(jī)名,這樣可以較為徹底地列出相關(guān)信息。

注意,運(yùn)行這個(gè)腳本需要samba-common-bin和arp-scan這兩個(gè)包,沒有的請先apt install它們。

用法:直接運(yùn)行或用python3運(yùn)行,然后輸入需要掃描的網(wǎng)卡名(network interface)(不知道的運(yùn)行ifconfig可查,一般是ens33、eth0等,出現(xiàn)在該命令輸出最左列),然后回車等待,可能需要運(yùn)行幾分鐘。

需要root權(quán)限運(yùn)行??!

#!/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()

到此這篇關(guān)于linux下快速列出局域網(wǎng)中所有主機(jī)名(計(jì)算機(jī)名)的腳本的文章就介紹到這了,更多相關(guān)linux 列出局域網(wǎng)中所有主機(jī)名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論