2008-11-16 12 views
12

Poszukuję open-source implementacji klienta UPnP w Pythonie, a dokładniej jego części Internet Gateway Device (IGD).Implementacja klienta Python UPnP/IGD?

Na razie mam tylko udało się znaleźć implementacje serwera UPnP, w projektach takich jak PyMediaServer, PyMedS, BRisa lub Coherence.

Jestem pewna, że ​​mogę wykorzystać te podstawy kodu jako początek, ale część Media Server wprowadzi niepotrzebną złożoność.

Czy możesz polecić bibliotekę Python dla klienta UPnP (i mam nadzieję IGD)? Alternatywą byłoby wysyłanie wywołań do biblioteki C, takiej jak MiniUPnP, ale zdecydowanie wolałbym czystą implementację Pythona.

Aktualizacja: interesująca, podobna dyskusja na temat SSDP i UPnP jest dostępna pod adresem StackOverflow.

Odpowiedz

7

Kod źródłowy MiniUPnP zawiera przykładowy kod języka Python korzystający z biblioteki C jako modułu rozszerzenia (patrz testupnpigd.py), który uważam za właściwe rozwiązanie mojego problemu.

Uzasadnienie: to nie jest czysty roztwór Python szukałem, ale:

  • znaczny wysiłek został już zainwestował w tej bibliotece,
  • jest lekki (to nie rozwiązuje problemów Media Server),
  • IGD jest zazwyczaj używany tylko przy konfiguracji połączenia, więc nie integrując go mocniej z kodem Pythona nie wydaje się problemem,
  • jako bonus, to zapewnia również realizację NAT-PNP (równoczesne Apple IGD, część Bonjour).
2

Myślę, że powinieneś naprawdę rozważyć BRISĘ. Niedawno stał się czystym Pythonem UPnP Framework, nie koncentruje się tylko na Media Server.

Zapewnia wiele użytecznych modułów i funkcji umożliwiających zbudowanie i wdrożenie urządzenia UPnP.

W projekcie brakuje również opinii :-). Proponuję użyć najnowszego kodu svn, jeśli chcesz wypróbować BRISĘ.

Można też skontaktować się z twórcami na #brisa na irc.freenode.org, jesteśmy w trybie online lub na biegu jałowym.

+0

Spędziłem trochę czasu na studiowaniu dokumentacji, ale szukam bardzo prostej, modułowej biblioteki. BRISA nie czuła w ten sposób IMHO. – oparisy