Я пытаюсь получить IP-адрес клиента, который запрашивает мой сайт, используя следующий код:
protected string GetIPAddress()
{
System.Web.HttpContext context = System.Web.HttpContext.Current;
string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(ipAddress))
{
string[] addresses = ipAddress.Split(',');
if (addresses.Length != 0)
{
return addresses[0];
}
}
return context.Request.ServerVariables["REMOTE_ADDR"];
}
У меня есть это в моем коде веб-службы c #, который находится на том же сервере, где находится код моего веб-сервера на стороне клиента (в данном случае это php).
Таким образом, клиент делает запрос на мой сайт php, который находится на сервере 1. php wesbite делает запрос к c # webservice для данных, которые находятся на сервере 1. Записанный в моем случае ip-адрес всегда находится там, где находится мой php-код. Это потому, что в моем случае это код php на сервере 1, делающий запрос.
Должен ли я получить IP-адрес в моем php-коде и передать его в мой веб-сервис c # для входа в базу данных.
Любое предложение будет с благодарностью
Спасибо,
Анураг
PHP выполняется на стороне сервера, поэтому, когда он делает запрос к веб-службе c #, веб-служба C # всегда будет иметь Request
объект, отражающий код PHP, который вызывает его с того же сервера.
Да, вы должны прочитать IP-адрес в коде PHP в этом случае.
Других решений пока нет …