Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Получит IP без WinSock


Автор: maestro2k 30.4.2006, 22:52
Как получить свой IP адрес без использования бодуля WinSock? 

Автор: bus 1.5.2006, 11:06
Можно, используя модули IPHelper.pas IPHLPAPI.pas.
Код:
Код

uses IPHelper, IPHLPAPI;
..................
..................
..................
function GetIPByIndex(InterfaceIndex: Cardinal): string;
var
 i:  integer;
 IPArr : TMIBIPAddrArray;
begin
   Result := '!not_found!'; 
   Get_IPAddrTableMIB( IpArr );  // получаем таблицу адресов
   if Length(IPArr) > 0 then
     for i := low(IPArr) to High(IPArr) do  // ищем индекс...
       if IPArr[i].dwIndex = InterfaceIndex then
       begin
         Result := IPAddr2Str(IParr[i].dwAddr);
         BREAK;
       end;
end;

где InterfaceIndex - индекс интерфейса, у которого нужно получить IP.
Вызывать так:
Код

....................
var
  MibArr: TMIBIfArray;
  IP: string;
.....................
Get_IfTableMIB(MibArr);
IP:= GetIPByIndex(MibArr[Index].dwIndex);
.....................

прогони Index значаниями 1, 2, 3, должен возвратить адреса интерфейсов. 

Автор: RA 1.5.2006, 18:53
можно подумать IPHLPAPI не использует winsock  smile  

Автор: Rouse_ 2.5.2006, 09:59
В реестре: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID интерфейса}\IPAddress или DhcpIPAddress (если DHCP включен) 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)