2010-07-12 55 views
2

是否可以查看Python中同一網絡上的其他設備(或任何編程語言)?以編程方式在Python中查看網絡上的其他計算機

編輯:爲了澄清,我想要做什麼(剛開始)是顯示連接的設備列表及其本地IP地址。所以,在我的路由器,它會顯示信息:

family_pc,192.168.1.2 work_laptop,192.168.1.3

我想檢索此信息。

回答

6

你想要做什麼?

nmap是一個非常常見的掃描網絡工具,看起來像你想要做的。還有一個python-nmap軟件包,可讓您輕鬆地在Python內直接使用nmap。

請更詳細,以便我們給您更好的答案,歡呼。

+0

原始評論已更新 – tipu 2010-07-12 23:40:22

+0

nmap會爲你做到這一點,所以也許像我提到的那樣查看python-nmap。 – Bartek 2010-07-12 23:41:06

3

這裏有幾個選項。

您可以在整個網絡地址空間上運行端口掃描,但這非常浪費和不友好。我不推薦它。

更好的方法是查詢使用服務發現協議的設備,如DNS-SD/Zeroconf(又名Bonjour)。大多數Linux和Mac系統都會響應,許多網絡打印機和其他網絡設備也會如此。 Windows系統不附帶DNS-SD代理,但可以安裝一個。

DNS-SD的純Python實現是available here。我在Linux,MacOS和Windows上使用過它。

如果您更喜歡微軟的方法,您可以嘗試UPnP的發現功能,但我無法保證它的工作效果如何,或者有多少系統會作出響應。

+0

我認爲現在純粹的python實現是[here](https://github.com/paulsm/pyzeroconf)。 – Gerrat 2015-03-13 19:39:04

+0

該回購看起來放棄了。這裏有一些新的來源: https://github.com/jstasiak/python-zeroconf https://github.com/wmcbrine/pyzeroconf https://pypi.python.org/pypi/zeroconf/ – 2015-03-13 23:42:25

-1

如果您不介意使用小小的第三方軟件,您可以使用Netresview,它可以很好地在Windows系統上運行,避免重新發明輪子等等。你可以做這種事情。

os.system('NetResView.exe /DisplayComputers 1 /RetrieveIPAddresses /stext ipfile') 
my_file = open('ipfile') 
for line in my_file : 
    print myfile.readline() 
相關問題