linux下快速列出局域網(wǎng)中所有主機(jī)名(計(jì)算機(jī)名)的腳本
最近有列出局域網(wǎng)中所有主機(jī)名的需求(SMB協(xié)議里的),但是findsmb命令總是列不全,搜了搜網(wǎng)上也沒什么現(xiàn)成的解決方案,于是自己寫了個(gè)python腳本
腳本會(huì)掃描局域網(wǎng)arp表中所有ip,并嘗試解析其主機(jī)名,這樣可以較為徹底地列出相關(guān)信息。
注意,運(yùn)行這個(gè)腳本需要samba-common-bin和arp-scan這兩個(gè)包,沒有的請(qǐng)先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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Ubuntu部署python3.5的開發(fā)和運(yùn)行環(huán)境
這篇文章主要介紹了Ubuntu部署python3.5的開發(fā)和運(yùn)行環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01
Linux expect實(shí)現(xiàn)自動(dòng)登錄腳本實(shí)例代碼
expect是一個(gè)基于Tcl的用于自動(dòng)交互操作的工具語言,它適合用來編寫需要交互的自動(dòng)化腳本,比如上面提到的SSH輸入用戶名密碼,自動(dòng)FTP等等場(chǎng)景。下面這篇文章主要給大家介紹了關(guān)于Linux expect實(shí)現(xiàn)自動(dòng)登錄腳本的相關(guān)資料,需要的朋友可以參考下。2018-03-03
systemd添加自定義系統(tǒng)服務(wù)設(shè)置自定義開機(jī)啟動(dòng)的方法
下面小編就為大家?guī)硪黄猻ystemd添加自定義系統(tǒng)服務(wù)設(shè)置自定義開機(jī)啟動(dòng)的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
使用Apache?Camel表達(dá)REST服務(wù)的方法
Apache Camel可以作為一個(gè)獨(dú)立的或嵌入的庫在任何地方運(yùn)行,它可以幫助整合,這篇文章主要介紹了如何使用Apache?Camel表達(dá)REST服務(wù),需要的朋友可以參考下2022-06-06
Linux下遠(yuǎn)程連接MySQL數(shù)據(jù)庫的方法
本篇文章主要介紹了Linux下遠(yuǎn)程連接MySQL數(shù)據(jù)庫的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
Linux centos如何讓普通用戶獲取root權(quán)限
這篇文章主要介紹了Linux centos如何讓普通用戶獲取root權(quán)限問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Linux系統(tǒng)之service創(chuàng)建方式
Linux下創(chuàng)建service的方法:1.創(chuàng)建一個(gè)新的service文件在/etc/systemd/system目錄中,2.編寫service文件的內(nèi)容,包括Description、After、ExecStart、User、Group、Restart和WantedBy,3.啟用service,使用命令systemctl enable2024-11-11

