Ein V6 oder V6 E? Ich habe noch nicht von allen neuen Gateways die Typenbezeichnung, könntest Du diese mal nachschlagen? Die findest Du z.B. im NEO Creator (Testmodus) im Gerätemanager oder vielleicht auch alternativ im NEO Config Tool. Bei einem V6 E ist diese z.B. C1, wäre wichtig wie diese beim V6 ist. Dann kann ich das fixen.
Des weitern wäre es interessant ob sich das V6 finden lässt da scheint es nämlich Unterschiede zu geben.
Kannst Du mal das ausführen und sagen ob Du da eine Ausgabe bekommst
$data = Discover();
var_dump($data);
function Discover()
{
// BUILD MESSAGE
$msg = "GET
";
// MULTICAST MESSAGE
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
if (!$socket) {
return [];
}
socket_set_option($socket, SOL_SOCKET, SO_BROADCAST, true);
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, true);
// SET TIMEOUT FOR RECIEVE
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 2, "usec" => 100000));
//socket_bind($socket, '0.0.0.0', 0);
if (@socket_sendto($socket, $msg, strlen($msg), 0, '239.255.255.250', 1901) === false) {
return [];
}
// usleep(100000);
$i = 50;
$buf = '';
$IPAddress = '';
$Port = 1901;
//$IPAddress = '';
//$Port = 0;
// RECIEVE RESPONSE
$response = array();
do {
$buf = null;
$bytes = @socket_recvfrom($socket, $buf, 2048, 0, $IPAddress, $Port);
//var_dump($bytes);
if (!is_null($buf)) {
//echo "buffer nicht null";
//var_dump($buf);
$response[] = parseMSearchResponse($buf);
}
} while (!is_null($buf));
// CLOSE SOCKET
socket_close($socket);
return $response;
}
function parseMSearchResponse( $response )
{
$responseArr = explode( "
", $response );
$parsedResponse = array();
foreach( $responseArr as $key => $row ) {
if( stripos( $row, 'DHCP' ) === 0 )
$parsedResponse['DHCP'] = str_ireplace( 'DHCP:', '', $row );
if( stripos( $row, 'HWV' ) === 0 )
$parsedResponse['HWV'] = str_ireplace( 'HWV:', '', $row );
if( stripos( $row, 'VER') === 0 )
$parsedResponse['VER'] = str_ireplace( 'VER:', '', $row );
if( stripos( $row, 'VID') === 0 )
$parsedResponse['VID'] = str_ireplace( 'VID:', '', $row );
if( stripos( $row, 'NAME') === 0 )
$parsedResponse['NAME'] = str_ireplace( 'NAME:', '', $row );
if( stripos( $row, 'IP') === 0 )
$parsedResponse['IP'] = str_ireplace( 'IP:', '', $row );
if( stripos( $row, 'PT') === 0 )
$parsedResponse['PT'] = str_ireplace( 'PT:', '', $row );
if( stripos( $row, 'SN') === 0 )
$parsedResponse['SN'] = str_ireplace( 'SN:', '', $row );
if( stripos( $row, 'GW') === 0 )
$parsedResponse['GW'] = str_ireplace( 'GW:', '', $row );
if( stripos( $row, 'DNS:') === 0 )
$parsedResponse['DNS'] = str_ireplace( 'DNS:', '', $row );
if( stripos( $row, 'MAC') === 0 )
$parsedResponse['MAC'] = str_ireplace( 'MAC:', '', $row );
if( stripos( $row, 'SWV:') === 0 )
$parsedResponse['SWV'] = str_ireplace( 'SWV:', '', $row );
if( stripos( $row, 'RFV:') === 0 )
$parsedResponse['RFV'] = str_ireplace( 'RFV:', '', $row );
if( stripos( $row, 'RFF:') === 0 )
$parsedResponse['RFF'] = str_ireplace( 'RFF:', '', $row );
if( stripos( $row, 'RFM:') === 0 )
$parsedResponse['RFM'] = str_ireplace( 'RFM:', '', $row );
if( stripos( $row, 'EID:') === 0 )
$parsedResponse['EID'] = str_ireplace( 'EID:', '', $row );
if( stripos( $row, 'FF:') === 0 )
$parsedResponse['FF'] = str_ireplace( 'FF:', '', $row );
if( stripos( $row, 'TZ') === 0 )
$parsedResponse['TZ'] = str_ireplace( 'TZ:', '', $row );
}
return $parsedResponse;
}