I'm trying to create a server that is able to determine whether each accepted connection is local or remote.
Server does this:
- call socket() to create TCP srvsock
- bind() srvsock to INADDR_ANY|server_port
- listen() on svrsock
- accept() connection on svrsock
Local client does this:
- call socket() to create clisock
- connect() clisock to 127.0.0.1|server_port
Remote client does this:
- call socket() to create clisock
- connect() clisock to server_public_ip|server_port
When accept() returns, how can the server determine whether the client is local or remote?