CHAR* nach UCHAR (MAC-Adresse)



  • hi,

    ich beschäftige mich derzeit mit ARP-Request und möchte eine ARP-Reply senden. Dafür muss ich irgendwie eine MAC-Adresse die als char* vorliegt in ein UCHAR array konvertieren damit ich später damit weiter arbeiten kann.

    Nur mir gelingt es irgendwie nicht, den Wert in einen UCHAR zu konvertieren, zur Laufzeit fliegt mir das Programm um die Ohren.

    //Mac ist 00-FF-DA-38-6B-CF
    UCHAR test[6];
    sprintf_s((char*)test, 6, "%u", "00FFDA386BCF");
    

    ich hab die größe von 6 gewählt, weil die MAC-Adresse in UCHAR Darstellung an andere Stelle in das Array hineinpasst. Nur ich komm irgendwie mit dem caste nicht klar - so gar nicht 😞

    kann mir da jemand helfen, wie ich meine MAC-Adresse als UCHAR Darstellung kriege?



  • //Mac ist 00-FF-DA-38-6B-CF
    const char *a = "00ffda386bcf";
    UCHAR test[6];
    
    size_t getHexValue(char c)
    {
    	if (c >= '0' && c <= '9')
    	{
    		return c - '0';
    	}
    	return c - 'a' + 10;
    }
    
    for (size_t i = 0; i < 6; ++i)
    {
    	test[i] = getHexValue(a[i * 2]) * 16 + getHexValue(a[i * 2 + 1]);
    }
    

    So in der Art.


Anmelden zum Antworten