Domanda

Sto cercando un'implementazione open source di un client UPnP in Python, e più specificamente del suo Internet Gateway Device (IGD) parte

Per ora, sono stato in grado di trovare solo implementazioni UPnP Media Server, in progetti come PyMediaServer , PyMedS , BRisa o Coherence .

Sono sicuro di poter usare queste basi di codice come inizio, ma la parte Media Server introdurrà complessità non necessaria.

Quindi puoi consigliare una libreria Python UPnP client (e si spera IGD)? Un'alternativa sarebbe quella di inviare chiamate a una libreria C come MiniUPnP , ma preferirei di gran lunga un Python puro implementazione.

Aggiornamento: un interessante, tipo di discussione correlata su SSDP e UPnP è disponibile su StackOverflow .

È stato utile?

Soluzione

Il codice sorgente MiniUPnP contiene un codice di esempio Python che utilizza la libreria C come modulo di estensione (vedere testupnpigd.py ), che considero una soluzione adeguata al mio problema.

Motivazione: questa non è la soluzione Python pura che stavo cercando, ma:

  • notevoli sforzi sono già stati investiti in questa biblioteca,
  • è leggero (non risolve i problemi di Media Server),
  • IGD viene in genere utilizzato solo durante l'impostazione della connessione, quindi non integrarlo più strettamente con il codice Python non sembra un problema,
  • come bonus, fornisce anche un'implementazione NAT-PNP (Apple concorrente di IGD, parte di Bonjour ).

Altri suggerimenti

Penso che dovresti davvero considerare BRisa. Recentemente è diventato un puro UPnP Framework in python, non focalizzato solo su Media Server.

Fornisce molti moduli e funzioni utili per la creazione e la distribuzione del dispositivo UPnP.

Anche al progetto mancano feedback :-). Ti suggerisco di usare l'ultimo codice svn, se sei disposto a provare BRisa.

Puoi anche contattare gli sviluppatori su #brisa su irc.freenode.org, siamo online o inattivi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top