Блог/ip адрес отправителя

Как узнать ip адрес отправителя в eform

Автор: Кудашев Сергей

При использовании форм обратной связи часто возникает желание узнать, с какого ip адреса было отправлено сообщение. Мы разберем простейшее получение ip адреса средства PHP и передачу его в eFrom для дальнейшего учета. Необходимо учитывать, что полученный ip адрес не будет иметь 100% достоверности, однако мы и не преследуем цели получить 100% достоверный ip адрес.

Итак, для получение ip адреса мы будем использовать сниппет:

<?php
if(!function_exists(getServer)) {
	function getServer( &$fields ) {
		$fields['remote_date'] = date('d-m-Y H:i:s');
		$fields['remote_addr'] = $_SERVER['REMOTE_ADDR'];
		return true;
	}
}

Как работает данный сниппет. В первую очередь мы проверяем, существует ли данная функция или нет. Делается это для того, чтобы избежать фатальной ошибки, если функция с подобным названием уже присутствует в пространстве имен выполняемого PHP скрипта. Далее мы записываем данные из переменной $_SERVER['REMOTE_ADDR'], которая содержит ip адрес посетителя полученный сервером при запросе, в переменную $fields, чтобы передать данные в eForm.

Теперь для вывода ip адреса нам необходимо сделать всего две вещи:

Вызвать данный сниппет перед вызовом eForm.

Указать полученные данные в теле отправляемого письма:

Отправлено [+remote_date+] c IP адреса <a href="http://whois.domaintools.com/[+remote_addr+]">[+remote_addr+]</a>

Комментарии (0)