Ich muss eine IP -Adresse mit DHCP im Java -Code [geschlossen] zuweisen.Java

Java-Forum
Anonymous
 Ich muss eine IP -Adresse mit DHCP im Java -Code [geschlossen] zuweisen.

Post by Anonymous »

Während ich eine Nachricht vom DHCP-Client erhalte, versuche eine Angebotsnachricht zurück zu senden, aber es scheint, als würde es sich wie dieses fehlgeformte Paket (DHCP/BOOTP) zeigen.

Code: Select all

private byte[] createDhcpMessage(long xid, byte msgType, byte[] offeredIp) {
byte[] msg = new byte[576];

msg[0] = 0x02; // BOOTREPLY
msg[1] = 0x01; // Ethernet
msg[2] = 0x06; // MAC Length
msg[3] = 0x00; // Hops
msg[4] = (byte) (xid >> 24);
msg[5] = (byte) (xid >> 16);
msg[6] = (byte) (xid >> 8);
msg[7] = (byte) xid;

msg[10] = (byte) 0x80; // Broadcast
System.arraycopy(offeredIp, 0, msg, 16, 4);

byte[] mac = new byte[] { 0x00, 0x1A, 0x2B, 0x3C, 0x4D, 0x5E };
System.arraycopy(mac, 0, msg, 28, mac.length);

msg[236] = 0x63;
msg[237] = (byte) 0x82;
msg[238] = 0x53;
msg[239] = 0x63;

int idx = 240;
msg[idx++] = 53;
msg[idx++] = 1;
msg[idx++] = msgType;

msg[idx++] = 1;
msg[idx++] = 4;
msg[idx++] = (byte) 255;
msg[idx++] = (byte) 255;
msg[idx++] = (byte) 255;
msg[idx++] = 0;

msg[idx++] = 3;
msg[idx++] = 4;
msg[idx++] = (byte) 192;
msg[idx++] = (byte) 168;
msg[idx++] = 1;
msg[idx++] = 1;

msg[idx++] = 6;
msg[idx++] = 4;
msg[idx++] = 8;
msg[idx++] = 8;
msg[idx++] = 8;
msg[idx++] = 8;

msg[idx++] = 51;
msg[idx++] = 4;
msg[idx++] = 0;
msg[idx++] = 1;
msg[idx++] = 0x51;
msg[idx++] = (byte) 0x80;

msg[idx++] = 54;
msg[idx++] = 4;
msg[idx++] = (byte) 192;
msg[idx++] = (byte) 168;
msg[idx++] = 1;
msg[idx++] = 1;

msg[idx++] = (byte) 0xFF;

return Arrays.copyOf(msg, idx);
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post