Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Определения IP адреса на Delphi (http://forum.oszone.net/showthread.php?t=44944)

fossil 05-02-2005 12:23 295502

Определения IP адреса на Delphi
 
Привет! Моя программа должна определять IP адрес, (при обозначении сеть или инет). Ищу более компактный и менее глючный код.

fossil 05-02-2005 13:34 295515

Точнее для сети определялка у меня есть:
Код:

uses
  WinSock;

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;

Правда елси кто знает как, я бы хотел его дополнить.. Он определяет только настоящий IP в сети, а если прописаны алиасы то он их не определяет :(
Если кто знает как сделать чтобы он и алиасы выводил допишите плз...

А вообще я ищу чтобы один код мог определять и инетовский (если это указано на CheckBox'e) и сетевой (с алиасами).

Savant 05-02-2005 13:39 295516

fossil
Могу помочь только тем, что лежит здеся, но на Си. Портировать там почти нечего (2 импортируемые функции всего, GetNICCount() и GetNICInfo()), так что думаю будет несложно. Теоретически используются недокументированные функции, т.к. их описания я в API что-то не нашел.

Хотя кое-что полезное можно и тут почерпнуть http://www.sources.ru/delphi/delphi_...terfaces.shtml

fossil 05-02-2005 13:54 295522

Savant
Не особо компактно ;)
А на счет Си, ща гляну..

fossil 05-02-2005 15:05 295534

Желательно чтобы умельцы помогли подправить мой код до совершенства...

Savant 05-02-2005 17:20 295559

fossil
Цитата:

Не особо компактно
хм... Там просто комментариев полно. Всего 1 кб кода генерируется (и то так много из-за работы со строками, которые Вам не нужны). Только на vcl вполне можно потерять намного больше (250-400 кб "лишнего" кода)


Время: 11:43.

Время: 11:43.
© OSzone.net 2001-