Home > python > Fingerprint of the operating system/platform

Fingerprint of the operating system/platform

I have a script that I want to run in different environments: on Linux, on Windows, on my home machine, at my workplace, in virtualbox, etc. In each environment I want to use different configurations. For instance the temp. directory on Linux would be /tmp, on Windows c:\temp, etc. When the script starts, I want to test the environment and load the corresponding configuration settings. How to get an OS-independent fingerprint of the environment?

I came up with the following solution. For my purposes the short fingerprint is enough.

import platform as p
import uuid
import hashlib

def get_fingerprint(md5=False):
    Fingerprint of the current operating system/platform.
    If md5 is True, a digital fingerprint is returned.
    sb = []
    sb.append(str(uuid.getnode())) # MAC address
    text = '#'.join(sb)
    if md5:
        md5 = hashlib.md5()
        return md5.hexdigest()
        return text

def get_short_fingerprint(length=6):
    A short digital fingerprint of the current operating system/platform.
    Length should be at least 6 characters.
    assert 6 <= length <= 32
    return get_fingerprint(md5=True)[-length:]

The up-to-date version of the source is available here as part of my jabbapylib library.

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: