How to get the device/host Name on client server

Hi all,

The script system.net.getHostName() returns the host/device name in local device and in client server it was returning the server name but instead of server name is their any chance to get the device name in the server side too.
Do we have any inbuilt-function or script to get this requirement. please suggest something to solve this.

Thanks

Perspective is using the client’s web browser. All it can possibly know is what is sent by the browser and that is limited.

This may help: How To Use Google Analytics To Find Out What Devices Your Customers Use.

There’s a session prop for that, session.prop.host from memory. In later versions of ignition, this can* be the actual hostname of the machine, but in older version it’s always the ip address. I believe there’s a new prop for ip address now in new versions

*I’ll let someone else explain reverse DNS or whatever is needed here as I haven’t looked into it yet @PGriffith?

It is based on asking the gateway’s DNS provider to resolve the IP address the gateway sees as the client. If you are connecting from behind any NAT device, the name will be that NAT device’s name. In that case, the gateway cannot know the name of the actual client device.

Even if a browser would give you a device name, you can’t trust it–a hacked browser can lie.

See ‘Resolve Client Hostnames’, introduced in 8.1.10:
https://docs.inductiveautomation.com/display/DOC81/Web+Server+Settings

Hi,
Actually I am using the Trial version and I don’t have the SSL certificate.
without SSL certificate it was not working.
so, can you suggest any other ways or scripts which can be helpful please.
Thank you

Hi,
I am using the Trail version of Ignition 8.1.14 and still in this version, the session parameter host is returning the IP address.
I have attached a screenshot for reference.
can you suggest for other scripts or procedures that could be helpful to get host/device name of the client instead of IP address please.
image
Thank you

I refer you back to Paul's post:

There is no other way to get the hostname in Perspective

The use of SSL has nothing to do with your site’s DNS configuration. Your own DNS server (the one the gateway uses to resolve host name => IP) must also resolve IP => hostname. Neither the Ignition gateway nor the client browser do this. Your own network infrastructure must do it, and Ignition will respect that.

Hi,
Is there any more unique options/features like MAC address other than host name and ip address that we can get it from the client device in ignition perspective.
can we get MAC address of the client machine using the ignition if possible please.
If any please suggest them and also help in me in getting those details.
Thank you

If you really need high-confidence access to such information, switch to Vision. Perspective cannot do this.

3 Likes

Hi All,
We have a session Parameter Named Device Identifier. we observed that the Device Identifier parameter value was changing upon changing the browser(Google Chrome, Edge…).
Also, Is this Device Identifier Value changes upon change of IP Address(Dynamic)?
If Yes, then could you please suggest some other session parameters/values that should not change with respect to IP Address/browser and should be unique for each device.

Thanks

What about the very prop this post is about, the host session prop?

Device Identifier Session Prop.

Not possible when browsers are involved. The device ID has to be stored in a cookie or browser-local storage, and that can be wiped out by users at any time. And each browser and user profile on a desktop maintains its own cookies and in-browser local storage. Using the mobile app should give you a more reliable device ID. IIRC, even that isn't guaranteed.

If you absolutely must identify the local machine running your client, you should have picked Vision, not Perspective. Vision can run local code to extract durable identifiers like network device MAC IDs, BIOS or hard drive serial numbers, and similar. Perspective cannot.

Is there a way to get the identifiers from vision and send that to perspective?
If Yes, please suggest the procedure to do this.

No. Vision is an alternative to Perspective. You would create your client graphics in Vision instead of Perspective. Ergo the "should have". Doing it now means you have to start over. (Vision and Perspective are fundamentally different technologies.)

Hi,
The function system.net.getHostName() is returning Host Name on gateway and on server side it is returning the server Name instead of Host Name.
Is there any function or session Parameters that can be used to get this functionality done in perspective only and without using the Reverse DNS.
If we cannot get the Host Name on the server side, Is there any unique Parameters for each device that can be used in place of Host Name and it should not be changing.

Thanks

You need to research on browser security and privacy. In the wider Internet context what you are asking for might allow a web host to identify your device and this could compromise your security.

Have a read of Is your device as unique as you are? Spoiler: Almost..

No. Sorry. You are going to have to rethink your entire design if this is a hard requirement.