Показать сообщение отдельно

  #7  
Старый 21.11.2009, 22:19
wolmer
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
С нами: 8947056

Репутация: 229
По умолчанию

Цитата:
Сообщение от Sams  
А каким образом тогда можно реализовать что-то на подобие IdHTTP. Тоесть поле Edit, Button и Memo. Вводишь в Edit ссылку сайта, жмешь на button и результат выводится в Memo. Вся суть в том, как узнать IP, что б подставить в структуру sockadd_in?
Код:
function TForm1.hosttoip(name: string): string;
var
 wsdata  :twsadata;
 hostname:array [0..255] of char;
 hostent :phostent;
 addr    :pchar;
 ip      :string;
begin 
 wsastartup($0101, wsdata);
 try
   gethostname (hostname, sizeof (hostname));
   strpcopy(hostname, name);
   hostent := gethostbyname (hostname);
   if assigned (hostent) then
     if assigned (hostent^.h_addr_list) then
      begin
        addr := hostent^.h_addr_list^;
        if assigned (addr) then
         begin
           ip:=format('%d.%d.%d.%d', [byte (addr [0]),
           byte(addr [1]), byte (addr [2]), byte (addr [3])]);
           result := ip;
         end
        else
           result:='';
      end
     else
        result := ''
   else
    begin
      result := '';
    end;
 finally
   wsacleanup;
 end
end;
(сразу говорю, код не мой, взят с сети)

Пример:
sin.sin_addr.S_addr:=inet_addr(pchar(hosttoip('yan dex.ru')));
{На счет преобр в pchar не уверен. Yandex если что пишется вместе (баг форума)}

Последний раз редактировалось wolmer; 21.11.2009 в 22:27..
 
Ответить с цитированием