Beispiel #1
0
 function handleClientRequest(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('yiaddr', dhcpPacket::ip2hex($attributes['yiaddr']));
     $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('lease_time', $attributes['lease_time']);
     $response->setData('server_id', array(10, 2, 3, 5));
     $response->setData('dns_server', $attributes['dns_server']);
     return true;
 }
Beispiel #2
0
 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";
     }
 }