Я не верю, что вы можете получить его, если используете стандартные вызовы функций recv или read. Recv из вызова следующим образом:
int recvfrom(
__in SOCKET s,
__out char *buf,
__in int len,
__in int flags,
__out struct sockaddr *from,
__inout_opt int *fromlen
);
включает структуру (от второго до последнего поля выше), которая будет получать адрес источника, который вы можете проверить для любых целей.