![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Нужно получить IP по имени компа.
Нашёл в Delphi World процедуру: Код:
uses WinSock; const WINSOCK_VERSION = $0101; function GetIPAddress(name: string): string; var WSAData: TWSAData; p: PHostEnt; begin WSAStartup(WINSOCK_VERSION, WSAData); p := GetHostByName(PChar(name)); Result := inet_ntoa(PInAddr(p.h_addr_list^)^); WSACleanup; end; А вот в этой функции всё работает нормально: Код:
function GetLocalIP: String;
const WSVer = $101;
var
wsaData: TWSAData;
P: PHostEnt;
Buf: array [0..127] of Char;
begin
Result := '';
if WSAStartup(WSVer, wsaData) = 0 then
begin
if GetHostName(@Buf, 128) = 0 then
begin
P := GetHostByName(@Buf);
if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
end;
WSACleanup;
end;
end; |
|
#2
|
|||
|
|||
|
Винда случаем не юникодная? Если да, то поменяй String на AnsiString.
|
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Klassenas (17.04.2012)
| ||
|
#3
|
||||
|
||||
|
странно, должно все работать на ура, имя хоста полностью вводишь
|
|
#4
|
||||
|
||||
|
Поменял на AnsiString, всё заработало.
Спасибо. Последний раз редактировалось Klassenas, 17.04.2012 в 19:28. |
|
#5
|
||||
|
||||
|
delphisources.ru попробуй это ввести
|