Annahme von 32-Bit-Maske und 32-Bit-Int.
%Vor%Hinweis: Dies ist nicht unbedingt die Antwort auf die Frage "Was ist der beste Weg, um die Netzwerkmaske für eine Schnittstelle zu erhalten?"
Ich tue es immer so (in deinem Fall cidr = 24):
%Vor%Dies funktioniert nur mit ipv4Netmask, um tatsächlich uint32_t zu sein, mach es nicht int, da int nicht auf jedem System 32 Bit sein muss. Das Ergebnis wird in die Netzwerk-Byte-Reihenfolge konvertiert, da dies von den meisten Systemfunktionen erwartet wird.
Dies ist keine Programmierfrage, aber in Linux können Sie whatmask verwenden.
%Vor%gibt
zurück %Vor%Seien Sie vorsichtig, wenn Sie die vorherigen Antworten mit Code wie:
verwenden %Vor%oder
%Vor%In mindestens C # wird zuerst die Anzahl der Verschiebungen mit 0x1F maskiert. Also für einen cidr mit Präfix 0 (dh den gesamten IPv4-Adressbereich):
%Vor%was nicht das ist was du willst. Stattdessen sollten Sie Folgendes verwenden:
%Vor%Tags und Links networking bit-manipulation