Обнаружение веб-сервисов с использованием Python

У меня есть несколько устройств в сети. Я пытаюсь использовать библиотеку, чтобы обнаружить наличие и сущность этих устройств с помощью скрипта Python, все устройства имеют веб-службу. Мой вопрос: есть ли какие-либо модули, которые помогут мне решить эту проблему, поскольку единственный модуль, который я нашел, — это ws-discovery для Python?

И если это единственный модуль, есть ли у кого-нибудь пример скрипта Python, использующего ws-discovery?

Спасибо за любую помощь.


person chrisg    schedule 17.03.2010    source источник


Ответы (2)


К сожалению, я никогда не использовал ws-discovery сам, но, кажется, есть проект Python, который его реализует: https://pypi.org/project/WSDiscovery/

Из их документации вот краткий пример того, как его использовать:

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()
person rlotun    schedule 21.03.2010
comment
Я уже использовал этот код, и он заработал, это было что-то на стороне моего сервера. Вы используете service.getXAddrs()[0] для получения x-адреса первой службы и т. д. Спасибо за помощь в любом случае - person chrisg; 30.03.2010

Вы привязаны к ws-discovery? Если нет, вы можете рассмотреть протокол Bonjour, также известный как ZeroConf и DNS-SD. Протокол относительно широко реализован. Я никогда не использовал Python для рекламы или обнаружения, но есть проект, реализующий API: http://code.google.com/p/pybonjour/

Как я уже сказал, у меня нет прямого опыта работы с этим проектом, и я просто указываю на него как на альтернативу ws-discovery.

person tikiboy    schedule 25.03.2010