# Client screens specific to certain IP address

**URL:** <https://forum.inductiveautomation.com/t/client-screens-specific-to-certain-ip-address/36032>\
**Category:** Ignition\
**Tags:** ignition80\
**Created:** [June 25, 2020, 2:08pm UTC](https://forum.inductiveautomation.com/t/client-screens-specific-to-certain-ip-address/36032 "2020-06-25T14:08:26Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![joshualanier](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/joshualanier/32/13293_2.png) [@joshualanier](https://forum.inductiveautomation.com/u/joshualanier)\
**Post date:** [June 25, 2020, 2:08pm UTC](https://forum.inductiveautomation.com/t/client-screens-specific-to-certain-ip-address/36032/1 "2020-06-25T14:08:26Z")

</div>

I’m trying to display specific screens (windows) on certain client monitors based on their specific IP address. The main motivators for this are: area specific interests and power cycles.

Would the best solution to this be a Client Startup Script like:  
If IP address = x.y.z.a, then windows = a,b, &c

Or is there some pseudo gateway to client push utility out there that I’m not aware of?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 25, 2020, 2:56pm UTC](https://forum.inductiveautomation.com/t/client-screens-specific-to-certain-ip-address/36032/2 "2020-06-25T14:56:06Z")

</div>

No, within Vision the generally accepted practice is to use client startup scripts and the `System/Client` tags for this purpose.

---

<div class="post-metadata">

**Author:** ![joshualanier](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/joshualanier/32/13293_2.png) [@joshualanier](https://forum.inductiveautomation.com/u/joshualanier)\
**Post date:** [June 25, 2020, 2:57pm UTC](https://forum.inductiveautomation.com/t/client-screens-specific-to-certain-ip-address/36032/3 "2020-06-25T14:57:36Z")

</div>

Thanks

---

<div class="post-metadata">

**Author:** ![joshualanier](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/joshualanier/32/13293_2.png) [@joshualanier](https://forum.inductiveautomation.com/u/joshualanier)\
**Post date:** [June 25, 2020, 3:05pm UTC](https://forum.inductiveautomation.com/t/client-screens-specific-to-certain-ip-address/36032/4 "2020-06-25T15:05:50Z")

</div>

Would there be a code example that i could reference for some assistance to the above needs?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 25, 2020, 3:10pm UTC](https://forum.inductiveautomation.com/t/client-screens-specific-to-certain-ip-address/36032/5 "2020-06-25T15:10:48Z")

</div>

[https://docs.inductiveautomation.com/display/DOC80/Open+Dynamic+Windows+on+Startup](https://docs.inductiveautomation.com/display/DOC80/Open+Dynamic+Windows+on+Startup)  
Is the closest I can readily find; there’s probably some some examples on the forums if you search for ‘hostname’.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [June 25, 2020, 5:09pm UTC](https://forum.inductiveautomation.com/t/client-screens-specific-to-certain-ip-address/36032/6 "2020-06-25T17:09:54Z")

</div>

Consider using a dataset to store this info. Then you can store all your client startup window config in there such as Windows to launch, screen to launch them on (for multi monitor), potentially a dictionary of params to pass (i would store as a string representation of a dictionary and use the ast library function `ast.literal_eval` to convert the string representation to a dictionary object), etc. For each client you want to customise. Launch a default config if the client isn’t listed in the dataset
