• 0

Send UDP packet


Question

Hi

I have the LightwaveRF home lighting system, which you can supposedly communicate with via UDP packets.  I have tested this from my Windows box using an app called Packet Sender.  I send "001,!F*p" (the initialisation code) in port 9760 to 192.168.0.6 (the LightwaveRF hub).  This triggers the hub to react - simply saying "Not yet linked" - that's far enough for me right now.

I am attempting to do the same via PHP, so this is my script:

<?
$lwrfPort = 9760;
$lwrfIP = '192.168.0.6';
$lwrfInitString = "001,!F*p";
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_sendto($sock, $lwrfInitString, strlen($lwrfInitString), 0 ,$lwrfIP, $lwrfPort);
socket_close($sock);
?>

I get no errors, but it also doesn't do anything - certainly not trigger the hub.

I have tried the following terminal command:

sudo sendip -p ipv4 -is 192.168.0.6 -p udp -us 9760 -ud 9760 -d '001\,!F*p' -v 192.168.0.6

Again nothing...

Can anyone suggest anything obvious I am doing wrong?

Thanks

Link to comment
https://www.neowin.net/forum/topic/1268498-send-udp-packet/
Share on other sites

17 answers to this question

Recommended Posts

  • 0
  On 13/08/2015 at 00:10, EddieF said:

Wild guess here, Perhaps SELinux is stopping it?  SELinux usually logs to /var/log/audit/audit.log  (atleast on CentOS)

This is the log:

[Wed Aug 12 16:29:34.574067 2015] [:error] [pid 3121] [client 192.168.0.5:52634] PHP Warning:  socket_sendto(): unable to write to socket [13]: Permission denied in /var/www/html/info.php on line 7

Hmmmm, what do I need to escalate for permission?

  • 0

I'd try putting SELinx into permissive mode (assuming your using a distro that has it by default) and see if the first command and your PHP script work. I'd be almost willing to bet SELinux would block apache/PHP from executing that script by default. 

setenforce 0

 

  • 0
  On 13/08/2015 at 00:19, Nik L said:

This is the log:

[Wed Aug 12 16:29:34.574067 2015] [:error] [pid 3121] [client 192.168.0.5:52634] PHP Warning:  socket_sendto(): unable to write to socket [13]: Permission denied in /var/www/html/info.php on line 7

Hmmmm, what do I need to escalate for permission?

Thats from audit.log?  That doesn't look like its from SELinux.

What linux distro are you using?

  • 0

Eep, sorry!  Ubuntu actually comes with apparmor by default, which is similar to SELinux.

You should remove SELinux.. I'm not even sure why it allowed you to install it with apparmor.

Check and verify that apparmor is on:

sudo apparmor_status

 

If it is you can disable it with this I believe:

sudo /etc/init.d/apparmor stop

 

I'm more familiar with Red Hat based distros (like Cent).  Ubuntu is more than capable of doing what you need. It mostly comes down to your taste on which distro you pick.

  • 0

I prefer CentOS, its very stable and widely used for web servers.  I might be overlooking something silly here because I just don't have the same level of experience with Ubuntu. 

There are some key differences between CentOS and Ubuntu, such as SELinux vs Apparmor (or lack thereof in your case LOL).  I will warn you that SELinux is a MAJOR pain, but if security isn't going to be a big issue you can easily just turn it off.

I haven't messed with CentOS 7 yet,  being new to Linux, I would recommend CentOS 6 anyways as its better documented. 

 

EDIT: There is one more thing you could try.  Set your PHP script to be in the same user:group as apache and/or set permissions to 777. 

This topic is now closed to further replies.