На этом шаге мы дополним созданный фильтр.
На этом шаге мы реализуем простую функцию MyFilter::OnReadRawData(). Она вызывает функцию CHttpFilterContext::GetServerVariable() для получения IP-адреса подключенного в текущий момент удаленного сервера и записи этих сведений в журнал.
DWORD CMyFilterFilter::OnReadRawData(CHttpFilterContext*
pCtxt, PHTTP_FILTER_RAW_DATA pRawData)
{
char pchVar[64];
DWORD dwSize = 64;
CStdioFile logfile("C:\\iislog.txt",
CFile::modeCreate | CFile::modeWrite);
BOOL bRet = pCtxt->GetServerVariable(
"REMOTE_HOST", pchVar, &dwSize);
if(bRet)
logfile.Write(pchVar, dwSize);
logfile.Close();
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}
Созданное приложение можно взять здесь (12,1 Кб).
На следующем шаге мы установим и протестируем созданный фильтр.