Da li i kako može da se dobije dodeljena IP adresa računara (znači ona za default konekciju, tj. za default mrežni adapter) ali onda kada je mreža "unplugged" (kada je mrežni kabl otkačen)?
Ja sam probao na dva načina, i uvek sam adresu dobijao samo kada je kabl povezan.
Primer za prvi način je sledeći:
program IPHelper;
{$APPTYPE CONSOLE}
uses
SysUtils, WinSock, JclSysInfo;
var
sHost, sIP: String;
nIP: Integer;
begin
try
sHost := GetLocalComputerName;
sIP := GetIPAddress(sHost);
nIP := inet_addr(PAnsiChar(sIP));
Writeln('HostName: ', sHost);
Writeln('IP address (string): ', sIP);
Writeln('IP address (longint): ', nIP);
Writeln('IP address components: ', (nIP and $000000FF), ', ', (nIP and $0000FF00) shr 8, ', ', (nIP and $00FF0000) shr 16, ', ', (nIP and $FF000000) shr 24);
Readln;
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
Drugi način je pomoću Indy komponente TIdIPWatch, ali i ona, u slučaju kada je kabl otkačen, vraća 127.0.0.1 (localhost).
Dakle, meni treba ona (fiksna) adresa koja je dodeljena na (default) LAN adapteru. Da li se to negde pamti u sistemu (i gde), i dali postoji neka API funkcija koja to može da mi vrati?
Unapred hvala.
Live long and prosper!











Dodeljena IP adresa
Re: Dodeljena IP adresa