Re: Модуль - SSDPFinder
Добавлено: Чт июл 26, 2018 11:03 pm
что именно подробней? Просто когда нажимаю получать список файлов, то всегда ноль файлов
Код: Выделить всё
import socket
import struct
MCAST_GRP = '239.255.255.250'
MCAST_PORT = 1982
SRC_PORT = 5159 # my random port
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2)
sock.bind(('', SRC_PORT))
sock.sendto("M-SEARCH * HTTP/1.1\r\n\
HOST: 239.255.255.250:1982\r\n\
MAN: \"ssdp:discover\"\r\n\
ST: wifi_bulb\r\n", (MCAST_GRP, MCAST_PORT))
# close this multicast socket
sock.close()
# and open a new receive socket on the same port
sock_recv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock_recv.bind(('', SRC_PORT))
while True:
print sock_recv.recv(10240)
Код: Выделить всё
public function search($st = 'ssdp:all', $mx = 2, $man = 'ssdp:discover', $from = null, $port = null, $sockTimout = '2')
{
$request = 'M-SEARCH * HTTP/1.1'."\r\n";
$request .= 'HOST: 239.255.255.250:1982'."\r\n";
$request .= 'MAN: "'.$man.'"'."\r\n";
$request .= 'MX: '.$mx.''."\r\n";
$request .= 'ST: wifi_bulb'."\r\n";
$request .= "\r\n";
$socket = socket_create(AF_INET, SOCK_DGRAM, 0);
socket_set_option($socket, SOL_SOCKET, SO_BROADCAST, true);
socket_sendto($socket, $request, strlen($request), 0, '239.255.255.250', 1982);
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec'=>$sockTimout, 'usec'=>'50'));
$response = array();
do {
$buf = null;
if (($len = @socket_recvfrom($socket, $buf, 1024, 0, $ip, $port)) == -1) {
echo "socket_read() failed: " . socket_strerror(socket_last_error()) . "\n";
}
if(!is_null($buf)){
$data = $this->parseSearchResponse($buf);
$response[$data['usn']] = $data;
}
} while(!is_null($buf));
socket_close($socket);
return $response;
}Код: Выделить всё
Array
(
[http] => HTTP/1.1 200 OK
[cache-control] => max-age=3584
[date] =>
[ext] =>
[location] => yeelight://192.168.0.100:55443
[server] => POSIX UPnP/1.0 YGLC/1
[description] => Array
(
[0] =>
)
)
Array
(
[0] =>
)Что только у меня не находит в сети её(( дeвайс yeelight bedroom lamp.tarasfrompir1 писал(а):Теперь должно включать и выключать лампочку....