powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TIdHTTPServer и RemoteIP.
21 сообщений из 21, страница 1 из 1
TIdHTTPServer и RemoteIP.
    #40089765
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не возвращает нормальный адрес клиента.

Что за фигня?

XE 10.3
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089766
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IPv6 вообще отключен.
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089767
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работа с TWebModule.

Одинаково пустой Request.RemoteIP и через Standalone и через ISAPI на разных машинах.
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089778
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клиент не локальный случаем? В заголовкам нет ip?
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089788
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content :=
    '<html>' +
    '<head><title>Web Server Application</title></head>' +
    '<body>Web Server Application' +
     Request.RemoteIP +
    '</body>' +
    '</html>';
end;


Работает. (Standalone)
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089846
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

В standalone - локальный. Но должен был бы тогда показывать 127.0.0.1, так ведь?

Там при этом в сокете indy, почему-то, выводиться данные binding по протоколу IPv6, хотя он в сетевом драйвере для ethernet отключен.

Может это из-за установеных дров open-vpn?
Но связь не через него должна идти.
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089850
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

если нет keep-alive, то ведь цикл такой: соединение, запрос от браузера, ответ от веб-сервера, соединение закрылось. Запрашиваете IP в каком-то событии во время обработки запроса, когда IP клиента определен?
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089860
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62,

Вот приблизительно как у тебя выше написано и запрашиваю.

Это standalone.

В ISAPI режиме - просто пустая строка.
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089861
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

да, я подумал, что может во время остановки выполнения соединение сокета разрывается, что-то такое и поэтому 0, но нет, у меня показывает и при остановке.
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089862
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

а страницы в браузере показываются? То есть обмен данными браузер-сервер-браузер происходит? Если да, то значит соединение есть, информация о peer IP у сокета есть (видимо), но почему-то IdHTTPServer её не выдаёт, в тех местах кода, где ты её запрашиваешь. Может какие-то моменты не те?
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089863
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62,

Да, все работает. Кроме RemoteIP.

Из "моментов" только наличие OpenVPN.
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089872
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

я имел в виду временнЫе моменты, когда запрашивается IP :) Но наверное дело не в этом.
Нельзя для проверки снести OpenVPN (а потом снова поставить)?
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089884
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

При резолвинге имени IPv6 имеет преимущество перед IPv4, поэтому твой localhost и резолвится шестёркой. Решений 2: коннектится на 127.0.0.1 или прописать в hosts "127.0.0.1 localhost".
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089886
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С локального хоста можно заходить не только по localhost/127.0.0.1. Можно в адресной строке браузера указать IP компьютера. В первом случае TIdHTTPServer показывает RemoteIP 127.0.0.1, во-втором - IP компьютера (сетевого интерфейса).
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089887
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

Ещё можно слушать только четвёрку (для ISAPI не сработает, ясное дело):
Код: pascal
1.
2.
3.
4.
    FServer.Bindings.Clear;
    FServer.DefaultPort := StrToInt(EditPort.Text);
    FServer.Bindings.Add.IPVersion := Id_IPv4;
    FServer.Active := True;
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089888
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey
rgreat,

При резолвинге имени IPv6 имеет преимущество перед IPv4, поэтому твой localhost и резолвится шестёркой. Решений 2: коннектится на 127.0.0.1 или прописать в hosts "127.0.0.1 localhost".

Хм, да.

При доступе не через localhost а через 127.0.0.1 в стэндалоне все выводится правильно.

Изврат какой.

Другое дело что через ISAPI это не помогает. Там все время пустая строка.
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089890
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey
rgreat,

Ещё можно слушать только четвёрку (для ISAPI не сработает, ясное дело):
Код: pascal
1.
2.
3.
4.
    FServer.Bindings.Clear;
    FServer.DefaultPort := StrToInt(EditPort.Text);
    FServer.Bindings.Add.IPVersion := Id_IPv4;
    FServer.Active := True;

Спасибо. Как подпорка для standalone - сойдет.
Только не ясно что делать с ISAPI.

Гугль говорит что:
https://stackoverflow.com/questions/45920491/delphi-web-httpapp-twebrequest-remoteip-vs-remoteaddr/45922580
Not implemented, блин. Причем уже много лет.
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089893
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Другое дело что через ISAPI это не помогает. Там все время пустая строка.

Use RemoteAddr, Luke.
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089897
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Вот ведь блин.
RemoteAddr в отличие от RemoteIP - работает.
Логика RTL меня вымораживает.

Спасибо еще раз.
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40089900
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
TIdHTTPServer и RemoteIP.
    #40090037
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey
rgreat,

При резолвинге имени IPv6 имеет преимущество перед IPv4, поэтому твой localhost и резолвится шестёркой. Решений 2: коннектится на 127.0.0.1 или прописать в hosts "127.0.0.1 localhost".

Да, спасибо Алексею, а я затупил. Не пошла мысль в этом направлении, что
0:0:0:0:0:0:0:1 в IPv6 как раз и соответствует localhost.

А то, что в модуле для ISAPI не работает RemoteIP (в standalone - работает нормально, по крайней мере в тестовом приложении у меня показывал и локальный, и удалённый IP), ну это да, такое, особенности Indy и WebBroker'а, на нем построенного.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TIdHTTPServer и RemoteIP.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]