[ rambo @ 12.01.2008. 00:54 ] @
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: Code: 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. |