private void UpdateRequestTelemetry(HttpContext platformContext, LocationContext location) { string resultIp = null; foreach (var clientIpHeaderName in this.HeaderNames) { var clientIpsFromHeader = platformContext.Request.UnvalidatedGetHeader(clientIpHeaderName); if (!string.IsNullOrWhiteSpace(clientIpsFromHeader)) { WebEventSource.Log.WebLocationIdHeaderFound(clientIpHeaderName); string ip = this.GetIpFromHeader(clientIpsFromHeader); ip = CutPort(ip); if (IsCorrectIpAddress(ip)) { resultIp = ip; break; } } } if (!string.IsNullOrEmpty(resultIp)) { location.Ip = resultIp; } else { var requestWrapper = new HttpRequestWrapper(platformContext.Request); location.Ip = requestWrapper.GetUserHostAddress(); } WebEventSource.Log.WebLocationIdSet(location.Ip); }
public void GetUserHostAddressReturnsNullIfRequestIsNull() { HttpRequestWrapper wr = null; Assert.IsNull(wr.GetUserHostAddress()); }