Hello,
In the Access Server Admin UI there is 'group permissions'. You can create groups there. Groups can have subnets assigned to them. Users that are assigned to the group can get their IP addresses from that group subnet. Groups are isolated from each other by default.
Example:
User Management > Group Permissions.
Where it says 'New Group' enter a name like "Group 1" and click the pencil-on-paper icon for more settings.
In "Subnets assigned to this group (optional):" enter something like 192.168.70.0/24
In Dynamic subnet ranges for this group (optional):" enter something like 192.168.70.2-192.168.70.253
Click save settings.
User Management > User Permissions.
For a particular user, set the group to "Group 1".
Click save settings.
Click update running servers.
Now connect with that particular user. It should get an IP like 192.168.70.something.
The hardware address checking script is here:
https://openvpn.net/vpn-server-resources/access-server-post-auth-script-host-checking/
This script checks MAC/UUID information sent by the VPN client to lock it down so that particular user can only connect from a device with that MAC/UUID. Your use-case is slightly different. You want to instead verify the public IP address of the VPN client. That requires slight changes to this script. Documentation for post-auth scripting including what variable contains the public IP address is here:
https://openvpn.net/vpn-server-resources/post-auth-programming-notes-and-examples/
I should note that while we provide example post_auth scripts, any custom coding is left up to whoever is writing that custom code. So basically in developing this particular check, you are on your own. But anyone with even a small grasp on programming should be able to use the information provided to adjust the script to do an IP check instead of MAC/UUID check.
Good luck,
Johan