function handleClientInform(dhcpServer $server, dhcpStorage $storage, dhcpPacket $packet, dhcpPacket $response) { $attributes = $storage->getAttributesForClient($packet->getMACAddress()); $response->setData('op', dhcpPacket::int2hex(2)); $response->setData('xid', $packet->getData('xid')); $response->setData('chaddr', $packet->getData('chaddr')); $response->setData('message_type', 'ack'); $response->setData('subnet_mask', $attributes['subnet_mask']); $response->setData('router', $attributes['router']); $response->setData('server_id', array(10, 2, 3, 5)); $response->setData('dns_server', $attributes['dns_server']); return true; }
function send() { $response = new dhcpPacket(); $response->setData('op', dhcpPacket::int2hex(1)); $response->setData('xid', '12345678'); // $response->setData('chaddr', ); $response->setData('htype', '00'); $response->setData('hlen', '00'); $response->setData('ciaddr', dhcpPacket::ip2hex(array(129, 21, 50, 223))); $response->setData('message_type', 'DHCPLEASEQUERY'); $responseData = $response->build(); $error = socket_sendto($this->socket, $responseData, strlen($responseData), 0, '129.21.49.137', 67); print_r($error); if ($error === FALSE) { print "Send failed for address"; } }