Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2008, 11:54   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
Вопрос IdHTTPCLient

Как с помощью IdHTTP считать свой IP например отсюда http://myip.dk/?
Shouldercannon вне форума Ответить с цитированием
Старый 02.07.2008, 12:02   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

компонент IdHttp не преднгазначен для такой цели.
Используйте компонент IdIPWatch из вкладки Indy Misc
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 02.07.2008, 13:23   #3
Prototype
Пользователь
 
Регистрация: 25.07.2007
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Квэнди
компонент IdHttp не преднгазначен для такой цели.
Используйте компонент IdIPWatch из вкладки Indy Misc
С помощью IdIPWatch можно узнать локальный ip, если у него ADSL то ip будет не тот, с которым он путешествует в сети.

Цитата:
Сообщение от Shouldercannon
Как с помощью IdHTTP считать свой IP например отсюда http://myip.dk/?
Эта функция возвратит ваш ip. Кстати её легко можно переделать под другой сайт!

Код:
function getip: string;
const
  StartText = '<div class="Box">';
  EndText = '</div>';
var
  http: TIdHTTP;
  StartPos, Leng: integer;
  Response: string;
begin
try
result := '';
http := TIdHTTP.Create(nil);
  try
    Response := HTTP.Get('http://myip.dk/');
  finally
  end;
  StartPos := Pos(StartText, Response) + Length(StartText);
  Response := copy(Response,StartPos,length(Response));
  Leng := Pos(EndText, Response)-1;
  result := Copy(Response, 1, Leng);
  http.Free;
except
 Result := '';
end;
end;
Prototype вне форума Ответить с цитированием
Старый 02.07.2008, 14:40   #4
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
Радость

У меня действительно ADSL. IdIPWatch я уже использовал это не то, что нужно. Он не может показать какой IP у меня в сети, только по локалке. Спасибо за функцию всё работает.

Последний раз редактировалось Shouldercannon; 02.07.2008 в 15:11.
Shouldercannon вне форума Ответить с цитированием
Старый 07.07.2008, 19:21   #5
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

если не офтоп, надо другой адрес использовать, где сразу выдается ip.
например это сайт http://www.whatismyip.com.
для того чтобы программой считать: http://www.whatismyip.com/automation/n09230945.asp. без тегов, без текста, только ip. удобно помоему.
только IdHTTP немного не для этого. но можно использовать
Роман Радер вне форума Ответить с цитированием
Старый 08.07.2008, 08:45   #6
AXS
Программер
Пользователь Подтвердите свой е-майл
 
Аватар для AXS
 
Регистрация: 03.07.2008
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
компонент IdHttp не преднгазначен для такой цели.
Используйте компонент IdIPWatch из вкладки Indy Misc
О-о-очень с Вами не согласен...
Вот такая строчка возвратит ip DSL (реальный ip по которому сёрфишь)
Код:
MyIP:=idHTTP1.Get('http://www.whatismyip.com/automation/n09230945.asp');
_____________
Роман, сорри... Не увидел твой пост - продублировал...
<AXS> Если один из двух выходов - ловушка, надо найти третий... </AXS>
<AXS> "Живой" - явление временное... </AXS>

<><><> www.mak-ms.com <><><>

Последний раз редактировалось AXS; 08.07.2008 в 08:48. Причина: накладочка с Романом вышла :)
AXS вне форума Ответить с цитированием
Старый 08.07.2008, 08:50   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Мда и какое отношение к этому методу имеет IdHTTP ?
компонент IdHttp не позволяет узнать ваш внешний IP адрес, он позволяет загрузить любую страницу в интернете.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 08.07.2008, 11:19   #8
Prototype
Пользователь
 
Регистрация: 25.07.2007
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
Мда и какое отношение к этому методу имеет IdHTTP ?
компонент IdHttp не позволяет узнать ваш внешний IP адрес, он позволяет загрузить любую страницу в интернете.
Да, отношения никакого, но ведь результат достигнут!!!
Prototype вне форума Ответить с цитированием
Старый 20.10.2008, 16:42   #9
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Ни как не разбурусь как отсюда (http://www.whatismyip.com/automation/n09230945.asp) считать свой IP. Если просто поменять адрес в Response:=HTTP.Get, не определяется.
Shouldercannon вне форума Ответить с цитированием
Старый 20.10.2008, 16:55   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Код:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  StdCtrls;

type
  TForm4 = class(TForm)
    Button1: TButton;
    http: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);
begin
showmessage('Ваш IP адрес: '+http.Get('http://www.whatismyip.com/automation/n09230945.asp'));
end;

end.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц