|
| Upnp, DLNA, SSDP,... Lister les périphériques du LAN |
| Iniciado por jerome.langin, 05,may. 2019 15:12 - No hay respuesta |
| |
| | | |
|
| |
| Publicado el 05,mayo 2019 - 15:12 |
Bonjour,
Je cherche à lister les périphériques réseau de mon LAN.
Actuellement j'ai lancé "arp -a" et récupéré les IP, puis NetNomMachine() sur chaque adresse. 2 soucis : - NetNomMachine() est très long - certaines adresses ne retournent rien (ex : ma freebox, mon player, les télephones IOS et Androïd,...
Je me penche donc sur l'Upnp pour allez chercher les infos.
J'ai essayé UpnpListePériphériques()
tabPériphériques est un tableau de upnpPériphérique tabPériphériques = UPNPListePériphérique("ssdp:discover", 1900) SI ErreurDétectée ALORS Info(ErreurInfo(errComplet)) SINON FIN
Mais en mettant un point d'arrêt au niveau du traitement je vois que tabPériphériques est vide.
C'est pourquoi je me suis penché sur le SSDP. Si j'ai bien compris il faut que je me connecte en Socket à l'adresse IP cible, puis lui envoie un message.
Voila mon code :
MSEARCH est une chaîne = "M-SEARCH * HTTP/1.1"+RC+"Host: 239.255.255.250:1900"+RC+"Man: 'ssdp:discover'"+RC+"ST:upnp:rootdevice"+RC+"MX:3" ChaîneVersUTF8(MSEARCH) tabByte est tableau d'entiers sur 1 octet POUR i = 1 _A_ Taille(MSEARCH) TableauAjoute(tabByte,Asc(MSEARCH[[i]])) FIN
SI SocketExiste("SSDP")=Faux ALORS SI PAS SocketCréeUDP("SSDP", 1900, "192.168.0.254") ALORS LIB_Resultat=ErreurInfo( errMessage ) SINON LIB_Resultat="Socket Ouvert" FIN FIN
SI SocketExiste("SSDP") ALORS SocketEcrit("SSDP",MSEARCH,"192.168.0.254", 1900) LIB_Resultat = SocketLit("SSDP",Faux) SI LIB_Resultat ALORS Trace(LIB_Resultat) FIN FIN
SI SocketExiste("SSDP")=Vrai ALORS SocketFerme("SSDP") LIB_Resultat = "Socket fermé" FIN
Malheureusement, aucun retour... J'ai sûrement oublié ou mal compris un élément... qqun a-t'il une idée pour m'aider à avancer svp?
Merci d'avance ! |
| |
| |
| | | |
|
| | | | |
| | |
|