
21.11.2009, 22:19
|
|
Постоянный
Регистрация: 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..
|
|
|