Ich habe eine Variable, die eine 4-Byte-IPv4-Adresse für die Netzwerkreihenfolge enthält (diese wurde mit pack und der Ganzzahldarstellung erstellt). Ich habe eine andere Variable, auch eine 4-Byte-Netzwerk-Reihenfolge, Subnetz. Ich versuche, sie zusammen zu addieren und eins zu addieren, um die erste IP im Subnetz zu erhalten.
Um die ASCII-Darstellung zu erhalten, kann ich inet_ntoa($ip&$netmask)
verwenden, um die Basisadresse zu erhalten, aber es ist ein Fehler, inet_ntoa((($ip&$netmask)+1)
; Ich bekomme eine Nachricht wie:
Also, was passiert, das Beste, was ich sagen kann, ist, dass ich die 4 Bytes ansehe und sehe, dass die 4 Bytes keine numerische Zeichenkette darstellen, und dann weis ich nicht, 1 hinzuzufügen.
Eine andere Art, es zu sagen: Was ich will, ist 1 zum niederwertigsten Byte zu addieren, von dem ich weiß, dass es das 4. Byte ist? Das heißt, ich möchte die Zeichenfolge \n\r&
nehmen und mit der Zeichenfolge %code% enden. Was ist der einfachste Weg, das zu tun? \n\r&
Gibt es eine Möglichkeit, dies zu tun, ohne die Variable entpacken und neu packen zu müssen?
Was passiert, ist, dass Sie eine Byte-Zeichenfolge mit $ip&$netmask
erstellen und dann versuchen, sie als Zahl zu behandeln. Dies wird als solches nicht funktionieren. Was Sie inet_ntoa
einspeisen müssen, ist.
Ich glaube nicht, dass es einen einfacheren Weg dafür gibt.
Verwirrende Ganzzahlen und Strings. Vielleicht hilft der folgende Code:
%Vor%Welche Ausgaben:
%Vor%