Sounds easy enough to do. And if you don't want to do it yourself, simply googling "crc32 big endian" turns up plenty of information. For example https://code.haskell.org/zlib/cbits/crc32.c handles both big and little endian. This was all of 10 seconds worth of work. You're welcome.
PS: If this C code is not exactly what you're looking for I suggest something like doing 120 seconds of work to find source code that does conform to your specifications.
Thanks for your help, but if I asked in this forum an help was because i've googled for days (not 10, not 120 and not 1000 seconds........) to find a code that was suitable for me. crc32.c contains a version that, don't know for what causes, doesn't work. So, since the code proposed by echo47 works great, i asked on this forum if there is a variant that runs on big-endian, that is my question.
Fair enough. I guess I used the median value for googling time spent on problem versus post count lookup table that is generally applicable to this forum.
That aside, you can look at the provided crc32.c code, and see how it manages to do both big/little endian. Or just grab echo47's code and generate your own CRC table. You can even take a look at the table generation code in that crc32.c code, that is the make_crc_table function. The comment for that function holds useful information.
The link layer Ethernet protocol needs to know the unique hardware address of the specific network adapter it has to deliver the message to and, in case of an error, the address of the one it came from. An IP address is a 'soft' address.