Create site free
Получить имя компьютера по IP - TCP/IP - Интернет и сети в Delphi - Каталог статей - Mvi - развлечения
Среда, 08.02.2012, 14:44
Музыка, видео, игры - MVI
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Категории каталога
ASP [2]
BackDoor [4]
CGI и Cookies [21]
Dial-up [18]
E-mail [31]
FTP [2]
ICQ [11]
TCP/IP [22]
Telnet [2]
URL [8]
XML [16]
Браузер [101]
Интернет [26]
Компоненты и Интернет [22]
Почтовый клиент [15]
Протоколы [18]
Сетевые диски [6]
Сеть [38]
Сокеты [27]
Файлы и Интернет [18]
Мини-чат
Наш опрос
Нужна ли возможность прослушивать музыку на нашем сайте?
Всего ответов: 67
Главная » Статьи » Интернет и сети в Delphi » TCP/IP

Получить имя компьютера по IP
uses 
WinSock;

function LocalIP: string;
type
TaPInAddr = array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: array[0..63] of Char;
I: Integer;
GInitData: TWSAData;
begin
WSAStartup($101, GInitData);
Result := '';
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if phe = nil then Exit;
pPtr := PaPInAddr(phe^.h_addr_list);
I := 0;
while pPtr^[I] <> nil do
begin
Result := inet_ntoa(pptr^[I]^);
Inc(I);
end;
WSACleanup;
end;

function IPAddrToName(IPAddr: string): string;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
WSAData: TWSAData;
begin
WSAStartup($101, WSAData);
SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr));
HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
if HostEnt <> nil then
Result := StrPas(Hostent^.h_name)
else
Result := '';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IPAddrToName(LocalIp));
end;

{**************************************}

// Function to get the IP Address from a Host

function GetIPFromHost(const HostName: string): string;
type
TaPInAddr = array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
i: Integer;
GInitData: TWSAData;
begin
WSAStartup($101, GInitData);
Result := '';
phe := GetHostByName(PChar(HostName));
if phe = nil then Exit;
pPtr := PaPInAddr(phe^.h_addr_list);
i := 0;
while pPtr^[i] <> nil do
begin
Result := inet_ntoa(pptr^[i]^);
Inc(i);
end;
WSACleanup;
end;
Категория: TCP/IP | Добавил: mvi (18.11.2008)
Просмотров: 190 | Рейтинг: 0.0/0 |
Всего комментариев: 0

При копировании материалов данного сайта, ссылка на него обязательна!

Имя *:
Email:
Код *:
Форма входа
E-mail:
Пароль:
Поиск
Друзья сайта
Анекдоты
Реклама
Статистика


Рейтинг@Mail.ru

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright MyCorp © 2012 Хостинг от uCoz