Contributor: LEONARDO HUMBERTO LIPORATI > > I am writing a program which will extract PC information and store it in > a database. The program will be run by each PC in my office and will > return Computername, Username ...etc.. The program is working fine > except I am unable to find out what the TCP/IP address of the PC running > the App. I am using Delphi1 and the program will be run on both Win3.11 > and Win95 PC's. > > Any help would be greatly appreciated. > > Also the Ethernet address of the card would be handy as well (if its > possible to read) > > Thanks in advance, > > Jason Atkins > Sydney, Australia > > email: jatkins@awa.com.au In Delphi 2 and Windows 95 I tested the code below and it works. Notice that I have included WinSock in the uses clause. Delphi 2 comes with winsock.dcu but I believe that Delphi 1 does not have it. Search the Delphi Super Page (http://sunsite.icm.edu.pl/delphi/), probably there will be useful sockets/TCPIP components that will help you. Code follows... ----------------------------------------- unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, WinSock, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormShow(Sender: TObject); type pu_long = ^u_long; var varTWSAData : TWSAData; varPHostEnt : PHostEnt; varTInAddr : TInAddr; namebuf : Array[0..255] of char; begin If WSAStartup($101,varTWSAData) <> 0 Then Edit1.Text := 'WSAStartup error!' Else Begin gethostname(namebuf,sizeof(namebuf)); varPHostEnt := gethostbyname(namebuf); varTInAddr.S_addr := u_long(pu_long(varPHostEnt^.h_addr_list^)^); Edit1.Text := inet_ntoa(varTInAddr); End; WSACleanup; end; end.