Я запускаю сервер для моего проекта.Клиенты при запуске запускают функцию проверки обновлений, которая работает как веб-служба.Эти запросы записываются в файл.
Для входа в файл я использую следующую функцию:
Public Sub Log(ByVal Message As String, ByVal Level As LogEntryLevel, ByVal Additional As Boolean)
Dim base As String = "C:\SERVER\log\"
Dim fileName As String = Date.Now.ToString("dd-MM-yyyy") & ".log"
Dim newString As String = ""
If Not Additional Then
If System.IO.File.Exists(base + fileName) Then newString &= vbNewLine
newString &= Date.Now.ToString("[dd/MM/yyyy HH:mm:ss.fff ") & Level.ToString & "] " & Message
Else
newString &= Message
End If
My.Computer.FileSystem.WriteAllText(base + fileName, newString, True)
End Sub
Для получения IP-адреса клиентов я использую следующую функцию:
Public Function getIP() As String
Dim ip As String
ip = Context.Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ip = String.Empty Then
ip = Context.Request.ServerVariables("REMOTE_ADDR")
End If
Return ip
End Function
Сообщение журнала построено следующим образом:
Log(String.Format("Client {0} invoked CheckForUpdate with [{1}]", getIP, ver), LogEntryLevel.INFO, False)
Некоторое время назад это было зарегистрировано:
[11-12-2011 22:10:20.730 INFO] Client 10.0.1.4, 127.0.0.1 invoked CheckForUpdate with [0.5]
O_O Как это можно вернуть?Это нормально?Это возможно?Как запрос мог исходить от localhost (127.0.0.1) и одновременно с удаленного IP-адреса?Был ли сервер взломан?Это глюк?Может кто-нибудь объяснить мне это?