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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2011, 17:36   #1
Letnab
Пользователь
 
Регистрация: 16.12.2009
Сообщений: 52
Восклицание Получение IP адреса

Доброго времени суток форумчане.
ни как не могу додуматься как вывести в делфи айпи адрес для PPP адаптера.

в нэте есть коды для получения локального ip но это не то.
не подскажите код? или где копать?

Последний раз редактировалось Letnab; 05.03.2011 в 19:54.
Letnab вне форума Ответить с цитированием
Старый 05.03.2011, 23:37   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
айпи адрес для PPP адаптера.
честно говоря не знаю что за РРР, могу скинуть рабочии ког для получения глобального IP
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 05.03.2011, 23:44   #3
Letnab
Пользователь
 
Регистрация: 16.12.2009
Сообщений: 52
По умолчанию

PPP адаптер это либо модем либо подключённый телефон.Я знаю Локальный можно узнать таким кодом

Код:
label1.Captoin:=IdIPWatch1.LocalIP;
а ты что хотел предложить?
Letnab вне форума Ответить с цитированием
Старый 06.03.2011, 11:48   #4
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Код:
uses
  ..., ScktComp;

function GetHTML(const AURL: string): string;
 var
   sHead,sHost,sPage: string;
   x,xCnt,xCntTotal: integer;
   sock: TClientSocket;
   ws: TWinSocketStream;
   ss: TStringStream;
   buff: array[0..4095] of char;
 const
   CrLf = #13#10;
 begin
   Result := '';
 
   sHost := AURL;
   x := Pos('//',sHost) ;
   if x > 0 then
     System.Delete(sHost,1,x+1) ;
   x := Pos('/',sHost) ;
   if x > 0 then
   begin
     sPage := Copy(sHost,x,Length(sHost)) ;
     System.Delete(sHost,x,Length(sHost)) ;
   end
   else
   begin
     sPage := '/';
   end;
 
   sock := TClientSocket.Create(nil) ;
   try
     try
       sock.ClientType := ctBlocking;
       sock.Port := 80;
       sock.Host := sHost;
       sock.Open;
 
       // установим задержку на 20 секунд
       ws := TWinSocketStream.Create(sock.Socket,20000) ;
       ss := TStringStream.Create('') ;
       try
         sHead := 'GET ' + sPage + ' HTTP/1.0 ' + CrLf + 
				'Host: ' + sHost + CrLf + CrLf;
         StrPCopy(buff,sHead) ;
 
         ws.Write(buff,Length(sHead) + 1) ;
         ws.Position := 0;
 
         FillChar(buff,SizeOf(buff),0) ;
         repeat
           xCnt := ws.Read(buff,SizeOf(buff)) ;
           xCntTotal := xCntTotal + xCnt;
           ss.Write(buff[0],xCnt) ;
         until xCnt = 0;
 
         Result := ss.DataString;
       finally
         ws.Free;
         ss.Free;
       end;
     except
   end;
   finally
     sock.Free;
   end;
 end;

procedure TForm1.Button1Click(Sender: TObject);
var
   ip: string;
 begin
   with TStringlist.Create do
   try
     Text := GetHTML('www.whatismyip.com/automation/n09230945.asp') ;
     if Count > 0 then ip := Strings[Count - 1];
   finally
     Free;
   end;
   ShowMessage('Ваш внешний адрес ip: ' + ip);
end;
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 07.03.2011, 15:12   #5
Letnab
Пользователь
 
Регистрация: 16.12.2009
Сообщений: 52
По умолчанию

Спасибо за код. но это не то.

тут можно даже сделать проще. через IDHttp

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
ip:string;
begin
ip:=IDhttp1.get('www.whatismyip.com/automation/n09230945.asp');
label1.caption:=ip;
end;
Letnab вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение адреса кластера из таблицы в файловой системе FAT12 anyx Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 28.02.2011 14:26
адреса на C ~~~ Помощь студентам 13 13.09.2010 17:27
Конфликт IP адреса ... Ronni10 Операционные системы общие вопросы 4 28.02.2008 14:14
2 одинаковых Ip адреса Alar Работа с сетью в Delphi 12 24.12.2006 10:21