Как узнать по доменному имени или по ip пришел запрос и по какому конкретно?
На оба ваших вопроса есть очень простой совет - сделайте виртуальные хосты, для сайта по имени, для сайта по ip и т.п. В виртуальных хостах опишите требуемое поведение вебсервера и свои логи для каждого. То есть если клиент пришел на 192.168.1.1 - всегда получите 404 , а если на site.ru - нормальный сайт и т.п. 
Как сделать - зависит от вашего веб-сервера - и апач и nginx это позволяют с легкостью, это есть во всех примерах и документациях.
На оба ваших вопроса есть очень простой совет - сделайте виртуальные хосты, для сайта по имени, для сайта по ip и т.п. В виртуальных хостах опишите требуемое поведение вебсервера и свои логи для каждого. То есть если клиент пришел на 192.168.1.1 - всегда получите 404 , а если на site.ru - нормальный сайт и т.п. 
Как сделать - зависит от вашего веб-сервера - и апач и nginx это позволяют с легкостью, это есть во всех примерах и документациях.