@Docbrain

Как в Delphi определить свой внешний IP?

Доброе время суток. Я хотел бы знать, как в Delphiузнать свой внешний IP? Компонент IdIPWatch, мне не подходит, так как позволяет узнать только локальный IP. Дурацкие решение типа парсинга (вот уж где истинный ФГМ!), тоже прошу не предлагать.
Поиски решения в Сети, равно как и вопросы на других ресурсах по программированию, желаемого результата не принесли. На вас последняя надежда.
Заранее благодарен.
  • Вопрос задан
  • 1586 просмотров
Пригласить эксперта
Ответы на вопрос 4
Если Вы имеете в виду ситуацию, когда Ваш компьютер находится за NAT, то никак без участия какого-либо внешнего сервиса.
icanhazip.com
checkip.dyndns.org
Яндекс
и т.п.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
у вас две внешних сети, какой именно внешний ИП нужен?

всегда определяется запросом к внешнему серверу, можете не парсить )))
Ответ написан
@Docbrain Автор вопроса
Собственно, я создаю сервер. И мне нужно, чтобы он как-то определял IP, на котором сидит. Не вводить же каждый раз вручную?
Ответ написан
Chvalov
@Chvalov
Попробуй!
uses
  idHTTP;

function GetMyRealIP : String;
var
  HTTP    : TidHTTP;
  text    : String;
  lc_pos  : Integer;
begin
  HTTP := TidHTTP.Create(nil);
  try
    text := HTTP.Get('http://whatismyip.com/');
  finally
    HTTP.Free;
  end;
  lc_pos := Pos('WhatIsMyIP.com</title>', text);
  text   := Copy(text, 1, lc_pos-1);
  lc_pos := Pos('Your IP is', text);
  text   := Copy(text, lc_pos + 10, length(text) - lc_pos + 1);
  Result := Trim(text);
end;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы