2010-03-17 39 views
1

我在網絡上有幾個設備。我試圖用庫來發現這些設備的存在和使用Python腳本的迭代性,這些設備都有一個Web服務。我的問題是,是否有任何模塊可以幫助我解決這個問題,因爲我發現的唯一模塊是用於Python的ws-discovery?使用Python發現Web服務

如果這是唯一的模塊有沒有人有任何使用ws-discovery的Python腳本示例?

感謝您的任何幫助。

回答

1

不幸的是我從來沒有使用WS-發現自己,但似乎有一個實現它一個Python項目: http://code.google.com/p/python-ws-discovery/

從他們的文檔,這裏是如何使用它一個簡單的例子:

wsd = WSDiscovery() 
wsd.start() 

ttype = QName("abc", "def") 

ttype1 = QName("namespace", "myTestService") 
scope1 = Scope("http://myscope") 
ttype2 = QName("namespace", "myOtherTestService_type1") 
scope2 = Scope("http://other_scope") 

xAddr = "localhost:8080/abc" 
wsd.publishService(types=[ttype], scopes=[scope2], xAddrs=[xAddr]) 

ret = wsd.searchServices() 

for service in ret: 
    print service.getEPR() + ":" + service.getXAddrs()[0] 

wsd.stop() 
+0

我已經使用過這段代碼並且能夠正常工作,它在我的服務器端。你可以使用'service.getXAddrs()[0]'獲得第一個服務的xaddress等。感謝您的幫助 – chrissygormley 2010-03-30 14:48:45

1

你是否與ws-discovery綁定?如果沒有,您可能需要考慮Bonjour協議,即ZeroConf和DNS-SD。該協議相對廣泛的實施。我從來沒有用Python來做廣告或發現,但有一個項目實現了一個API:http://code.google.com/p/pybonjour/

正如我所說,我沒有直接的經驗與這個項目,只是指出它作爲ws-發現。