Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The information on this page refers to LM-X v4v5.9 5 and newer, which added HostIDs for Google Compute Engine and Azuresupport for 32-bit Linux ARM. If you are using an older version of LM-X, refer to documentation for earlier versions. 

For maximum flexibility in your licensing options, you can define the HostID values for your protected application within the license rather than inside the protected application. This enables you to license your application differently for different users, without requiring your application to be recompiled.

...

HostID Type

Description

Platform Availability

LMX_HOSTID_ETHERNET

Network card HostID

All

LMX_HOSTID_USERNAME

Username HostID

All

LMX_HOSTID_HOSTNAME

Hostname HostID

All

LMX_HOSTID_IPADDRESS

IP address HostID

All

LMX_HOSTID_CUSTOM

Custom HostID

All

LMX_HOSTID_DONGLE_HASPHL

HaspHL Dongle HostID

Windows (x86 and x64)

Linux (x86, x64 and x64arm64)

Mac OS X (Universal)

LMX_HOSTID_HARDDISK

HostID of physical harddisk

Windows (x86 and x64; not available for use with MinGW compiler)

LMX_HOSTID_LONG

System-specific HostIDSolaris, HP-UX

Mac OS X (Universal)

LMX_HOSTID_BIOS

Bios HostID

Windows (x86 and x64; not available for use with MinGW compiler)

LMX_HOSTID_WIN_PRODUCT_ID

Windows Product ID

Windows (x86 and x64)

LMX_HOSTID_AWS_INSTANCE_ID

Amazon EC2 Instance ID

Windows (x86 and x64) within Amazon EC2 environment

Linux (x86 and x64) within Amazon EC2 environment

All

LMX_HOSTID_GCE_ID

Google Compute Engine ID

Windows (x86 and x64)

Linux (x86 and x64)

All

LMX_HOSTID_AZURE_ID

Azure ID

All

LMX_HOSTID_RPI_SN

Raspberry Pi serial number

Linux arm32 and arm64

Windows (x86 and x64)

Linux (x86 and x64)

For help on deciding which HostID or combination of HostIDs fits your needs, see Determining which HostID to use. For complete information about the operating system versions that are supported by LM-X, see Supported platforms.   

...

When using LMX_HOSTID_DONGLE_HASPHL with local standalone licenses, the client application should ensure that the dongle is not removed during client runtime.

One way to You can check the dongle is by calling LMX_Heartbeat on a separate thread continuously, or by ensuring that LMX_HOSTID_DONGLE_HASPHL HostID is in use and , if so, comparing the HostID value against the last known good value, as demonstrated in the following example. 

Code Block
languagecpp
int i;
LMX_FEATURE_INFO FI;
LMX_HOSTID LmxHostid[LMX_MAX_HOSTIDS];
int nHostids;
LMX_GetFeatureInfo(LmxHandle, "my_app", &FI);
/* Go through each hostid used for this particular feature */
for (i = 0; i < FI.nClientLicenseHostids; i++)
{
  /* See if the hostid is a dongle hostid */
  if (FI.ClientLicenseHostid[i].nHostidType == LMX_HOSTID_DONGLE_HASPHL)
  {
    /* See if hostid function reports the same value as we used when checking out the license */
    if (LMX_Hostid(LmxHandle, LMX_HOSTID_DONGLE_HASPHL, LmxHostid, &nHostids)!= LMX_SUCCESS) 
      return BAD_DONGLE;
    if (nHostidnHostids != 1)
      return BAD_DONGLE;
    /* Compare if the hostid at checkout time matches the hostid at present time */
    if (strcmp(FI.ClientLicenseHostid[0].szValue, LmxHostID[0].szValue) != 0) 
      return BAD_DONGLE;
  }
}

...