[PHP] Socket UDP Broadcast funktioniert nicht

OP #6972300
Lesenswert?

Ich bekomme über PHP kein Broadcast hinaus (oder ich weiß nicht genau ob 
das Python Script es empfängt). Wenn ich die IP Adresse des Ziels direkt 
eingebe und die Socket Option SO_BROADCAST hinausnehme funktioniert dies 
tadellos.

Mein PHP Code ist folgender:
1
<?php
2
  $ip = "192.168.255.255";
3
  $port = 20001;
4
  $str = "90";
5

6
  $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
7
  socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
8
  socket_sendto($sock, $str, strlen($str), 0, $ip, $port);
9

10
  socket_recvfrom($sock, $buf, 1000, 0, $ip, $port);
11
  echo "Messagge : < $buf > , $ip : $port <br>";
12

13
  socket_close($sock);
14
?>

Die Ziel IP Adresse ist die 192.168.177.3 - diese Addresse liegt 
außerhalb des IP Bereiches auf dem der Webserver läuft, dieser läuft auf 
192.168.178.5 und ist via VPN angebunden. Kann es sein das über den 
Router / VPN keine Broadcasts nach außen gehen?
Gast #6972325
Lesenswert?

Du denkst, 192.168.255.255 wäre eine Broadcast-Adresse (das Netz wäre 
dann 192.168.0.0/16), die folgenden Adressen 192.168.177.3 und 
192.168.178.5 lassen mich aber vermuten, dass du mehrere /24-Netze hast.

Probiers mal mit 192.168.177.255 respektive 192.168.178.255.

An sich gibt's nur die universelle 255.255.255.255 um einen Broadcast 
auf allen Interfaces zu erzeugen und die Broadcast-Adresse eines 
Interfaces um nur auf diesem einen zu senden.  Geroutet werden 
Broadcasts üblicherweise nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren