是否可以查看Python中同一網絡上的其他設備(或任何編程語言)?以編程方式在Python中查看網絡上的其他計算機
編輯:爲了澄清,我想要做什麼(剛開始)是顯示連接的設備列表及其本地IP地址。所以,在我的路由器,它會顯示信息:
family_pc,192.168.1.2 work_laptop,192.168.1.3
我想檢索此信息。
是否可以查看Python中同一網絡上的其他設備(或任何編程語言)?以編程方式在Python中查看網絡上的其他計算機
編輯:爲了澄清,我想要做什麼(剛開始)是顯示連接的設備列表及其本地IP地址。所以,在我的路由器,它會顯示信息:
family_pc,192.168.1.2 work_laptop,192.168.1.3
我想檢索此信息。
你想要做什麼?
nmap
是一個非常常見的掃描網絡工具,看起來像你想要做的。還有一個python-nmap軟件包,可讓您輕鬆地在Python內直接使用nmap。
請更詳細,以便我們給您更好的答案,歡呼。
這裏有幾個選項。
您可以在整個網絡地址空間上運行端口掃描,但這非常浪費和不友好。我不推薦它。
更好的方法是查詢使用服務發現協議的設備,如DNS-SD/Zeroconf(又名Bonjour)。大多數Linux和Mac系統都會響應,許多網絡打印機和其他網絡設備也會如此。 Windows系統不附帶DNS-SD代理,但可以安裝一個。
DNS-SD的純Python實現是available here。我在Linux,MacOS和Windows上使用過它。
如果您更喜歡微軟的方法,您可以嘗試UPnP的發現功能,但我無法保證它的工作效果如何,或者有多少系統會作出響應。
我認爲現在純粹的python實現是[here](https://github.com/paulsm/pyzeroconf)。 – Gerrat 2015-03-13 19:39:04
該回購看起來放棄了。這裏有一些新的來源: https://github.com/jstasiak/python-zeroconf https://github.com/wmcbrine/pyzeroconf https://pypi.python.org/pypi/zeroconf/ – 2015-03-13 23:42:25
如果您不介意使用小小的第三方軟件,您可以使用Netresview,它可以很好地在Windows系統上運行,避免重新發明輪子等等。你可以做這種事情。
os.system('NetResView.exe /DisplayComputers 1 /RetrieveIPAddresses /stext ipfile')
my_file = open('ipfile')
for line in my_file :
print myfile.readline()
原始評論已更新 – tipu 2010-07-12 23:40:22
nmap會爲你做到這一點,所以也許像我提到的那樣查看python-nmap。 – Bartek 2010-07-12 23:41:06