Does anyone have a clue if its possible to get the IP-address of the network interface that response to the broadcast command?
Cheers,
Victor
(PHP 4 >= 4.1.0, PHP 5, PHP 7)
socket_sendto — Sends a message to a socket, whether it is connected or not
$socket
, string $buf
, int $len
, int $flags
, string $addr
[, int $port
= 0
] )
The function socket_sendto() sends
len
bytes from buf
through the socket socket
to the
port
at the address addr
.
socket
A valid socket resource created using socket_create().
buf
The sent data will be taken from buffer buf
.
len
len
bytes from buf
will be
sent.
flags
The value of flags
can be any combination of
the following flags, joined with the binary OR (|)
operator.
MSG_OOB |
Send OOB (out-of-band) data. |
MSG_EOR |
Indicate a record mark. The sent data completes the record. |
MSG_EOF |
Close the sender side of the socket and include an appropriate notification of this at the end of the sent data. The sent data completes the transaction. |
MSG_DONTROUTE |
Bypass routing, use direct interface. |
addr
IP address of the remote host.
port
port
is the remote port number at which the data
will be sent.
socket_sendto() returns the number of bytes sent to the
remote host, or FALSE
if an error occurred.
Example #1 socket_sendto() Example
<?php
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$msg = "Ping !";
$len = strlen($msg);
socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 1223);
socket_close($sock);
?>
Does anyone have a clue if its possible to get the IP-address of the network interface that response to the broadcast command?
Cheers,
Victor
Here's how you can make an udp broadcast, useful sometimes, and does seem hard to figure out hwo to do..
<?php
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_sendto($sock, $broadcast_string, strlen($broadcast_string), 0, '255.255.255.255', $port);
?>