67 lines
1.7 KiB
Markdown
67 lines
1.7 KiB
Markdown
# DLNA receiver per MacOS
|
|
|
|
|
|
### SBLOCCARE MACOS PER PERMETTERE IL MULTICAST SSDP
|
|
macOS blocca il multicast UDP in uscita per processi non autorizzati,
|
|
anche se il firewall è disattivato.
|
|
|
|
Per questo il tuo Python diceva “SSDP sent”, ma non usciva nulla sulla rete.
|
|
|
|
✔️ 1. Abbiamo autorizzato Python nel firewall di macOS
|
|
Se usi Python di sistema:
|
|
|
|
```
|
|
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/bin/python3
|
|
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/bin/python3
|
|
```
|
|
|
|
Questo è il passaggio fondamentale:
|
|
senza questa autorizzazione, macOS non invia multicast.
|
|
|
|
✔️ 2. Abbiamo abilitato le app firmate a inviare multicast
|
|
macOS ha due flag nascosti che, se disattivati, bloccano il multicast:
|
|
|
|
```
|
|
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned on
|
|
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp on
|
|
```
|
|
Questi due comandi dicono al firewall:
|
|
|
|
“Lascia passare il traffico multicast delle app firmate (come Python).”
|
|
✔️ 3. Abbiamo verificato con tcpdump
|
|
Dopo la patch:
|
|
|
|
si può verificare con
|
|
```
|
|
sudo tcpdump -i en0 udp port 1900
|
|
```
|
|
E finalmente hai visto:
|
|
|
|
```
|
|
IP 192.168.1.2 > 239.255.255.250:1900 UDP
|
|
```
|
|
→ Conferma che macOS ora lascia uscire i pacchetti SSDP.
|
|
|
|
### DIPENDENZE minime
|
|
|
|
```
|
|
pip install flask netifaces
|
|
```
|
|
|
|
### DIPENDENZE per altri test DLNA
|
|
|
|
lxml → per fare parsing XML più robusto (prima di passare a parsing manuale)
|
|
requests → per testare SOAP verso TV reali
|
|
flask → già incluso, ma reinstallato
|
|
```
|
|
pip install flask lxml requests
|
|
```
|
|
|
|
## COME AVVIARE
|
|
```
|
|
python3 dlna_receiver.py
|
|
```
|
|
ma va avviato anche VLC in modalità player DLNA
|
|
```
|
|
/Applications/VLC.app/Contents/MacOS/VLC --extraintf rc --rc-host localhost:9999
|
|
```
|