> well you can't set the NIC to a mac address if it's already present in the network (IMHO).
I'm not sure that is correct... I think it depends on the "network". By "network" we understand all the computers that use the same internet connection (same public IP visible from the internet).
Anyway, the server is on the internet which means that there is no way it can access the MAC address directly. Any computer could mimic the conversation that sends the MAC address to the server.
IPv6 should allow to identify a specific computer, but we'll need to wait a little bit for that.
> For the range, I meant if your LAN is on DCHCP then you knwo the range it's been assigend to.
We are talking about the public IP of the internet connection which has nothing to do with the LAN.
You'll need to ask for the ISP's DHCP range(s).
> we need to be able to restrict access to a staff with an authentic username and password who is trying to login from a branch he is not authorised in
That's what we said. If the branches have different public IP's (or IP ranges) then you can restrict the login based on the IP address. Visit a page that echoes your public IP, like
http://whatsmyip.org/ or
http://whatismyipaddress.com/ from each branch to see what their public IP is. If the IP's are diffent, then you have a way to identify each branch.
If the public IP's are dynamically allocated (they might change), most routers support dynamic DNS with services like No-IP (
http://www.no-ip.com/). If the branches use that, your server can do a DNS lookup to identify which branch uses which IP address. For instance "branch1.no-ip.com" would resolve to branch 1's IP address, "branch2.no-ip.com" would resolve to branch 2's IP address.
> is there any way we can identify via router mac address, if it is going through the internet
No, there is no way using IPv4... IPv6 might make it possible. IPv6 adds some routing information as well as the MAC address.
Cheers.