У меня есть HttpListener, где я заинтересован в возможности видеть IP-адрес запрашивающих клиентов. Бонус также мог бы видеть DNS клиента, но я не уверен, как это будет возможно, поскольку, насколько я знаю, информация не отправляется с помощью HTTP?Получение запроса IP-адреса клиента на сервере
В любом случае, насколько я могу судить, я должен использовать для этого Request.UserHostAddress
, но я просто получаю свой локальный IP-адрес. Что я здесь делаю неправильно?
Где я должен получить IP-адрес клиента.
HttpListenerContext context = listener.EndGetContext(result);
string clientName = context.Request.UserHostAddress;
Где я пишу на выходной сервер ListBox У меня есть:
public static void TileString(int x, int y, int z, string dbName, string clientName)
{
int[] tileInts = { z, x, y };
string tileString = string.Join("/", tileInts);
Application.Current.Dispatcher.Invoke(new Action(() =>
{
var mainWindow = Application.Current.MainWindow as MainWindow;
mainWindow.AppendServerOutput("Delivering tile " + tileString + " in format [z, x, y]" + " from " + dbName + " to client " + clientName + "\n");
}));
}
DNS-имя клиента - «context.Request.UserHostName;'. Но, похоже, вы написали правильный код. Имя clientName переписано? Что показано при добавлении 'Debug.WriteLine (« client is: »+ clientName),' после первого фрагмента кода (чтобы убедиться, что ничего не перезаписано)? – Sjips
И что такое 'context.Request.RemoteEndPoint.ToString());' показывать ?; – Sjips
@Sjips Использование RemoteEndPoint.ToString() показало мне именно то, что я хотел. Не могу поверить, что я пропустил это. Благодаря! – Left4Cookies