IP-Adresse erhöhen

8

In diesem Programm möchte ich die IP-Adresse erhöhen. Und ich sehe die Ausgabe so:

%Vor%

Aber ich möchte eine Ausgabe wie folgt sehen:

%Vor%

Hier ist Programmcode:

%Vor%     
d_pilot 19.07.2011, 07:08
quelle

3 Antworten

18

Großer Endian und kleiner Endian bekommt noch einen! Verwenden Sie htonl und ntohl, um hin und her zu konvertieren.

%Vor%     
selbie 19.07.2011, 07:14
quelle
6

Um eine IP-Adresse zu erhöhen, müssen Sie das in_addr -Objekt in 4 int -Objekte zerlegen (ein short int wird auch tun) und das vierte erhöhen, bis es 256 erreicht, und dann auf 1 zurücksetzen und inkrementiere die dritte usw. Du solltest ++ nicht direkt für das Objekt in_addr verwenden.

EDIT: Okay, also können Sie es richtig inkrementieren, wenn Sie die Byte-Reihenfolge umkehren. Ich persönlich würde es nicht so machen. Vor allem, wenn Sie nur IP-Strings ausgeben und diese nicht als in_addr an anderer Stelle im Code verwenden.

    
darvids0n 19.07.2011 07:12
quelle
1

Anstatt adr1.s_addr zu verwenden:

%Vor%

Verwenden Sie dies:

%Vor%

Und inkrement addr1 , d. h. addr1++ Das letzte Oktett wird inkrementiert.

Oder folge dieser Formel:

%Vor%     
Ankit Paraskar 20.09.2011 05:51
quelle