Get PC IP address with Delphi XE2

Is there a simple way for a Delphi XE2 application to get the IP address of the PC where the application is running ?
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Ferruccio AccalaiSenior developer, analyst and customer assistance Commented:
uses winsock;
{$R *.dfm}

function LocalIP: string;
  TaPInAddr = array [0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: array [0..63] of Ansichar;
  i: Integer;
  GInitData: TWSADATA;
  WSAStartup($101, GInitData);
  Result := '';
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(Buffer);
  if phe = nil then
  pptr := PaPInAddr(phe^.h_addr_list);
  i := 0;
  while pptr^[i] <> nil do
    Result := StrPas(inet_ntoa(pptr^[i]^));

procedure TForm1.Button1Click(Sender: TObject);

Open in new window

Geert GOracle dbaCommented:
indy components include a component TIdIpWatch

Place on a form and IdIpWatch1.LocalIp to get your ip
or in a function:
function LocalIp: string;
var IPW: TIdIPWatch;
  Result := '';
  IpW := TIdIPWatch.Create(nil);
    if IpW.LocalIP <> '' then
      Result := IpW.LocalIP;

Open in new window


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
LeTayAuthor Commented:
Hello Geert, I wonder how you can find to for "productive" (making money) work seeing all the good answers/solutions you provide to the community !
Many thanks
JavaScript Best Practices

Save hours in development time and avoid common mistakes by learning the best practices to use for JavaScript.

Delphi programming is a niche market.  Jobs are not always as readily available as they are with other languages, but they can pay very well.  Just in the last 3 months I have seen Delphi contracting jobs in the $65.00 - $80.00 per hour range ($130,000.00 - $160,000.00) per year.

This is yet another reason why I like Delphi.  I can take a 12 or 18 month contract and afford to have some time off!
LeTayAuthor Commented:
You mean time off to help EE ?
Geert GOracle dbaCommented:
i admit it is difficult to cram everything in a 24 hour day.
it helps if you only need 5 to 7 hours of sleep

while oracle things are installing i try and solve delphi questions on EE
currently i'm installing a lot :)

current job: oracle dba + sap basis 3 years
previous jobs: delphi developer 10 years,
  technician (plumbing, electricity, hvac, car mechanics in the weekend) 4 years
next job: don't know yet

old hobbies: martial arts (black belt), golf (handicap 9)
current hobby: house makeover, kids

you won't see me much in the weekends and evenings
i'm doing a makeover of our house
> currently the bathroom is 90% finished.
i didn't know a bathroom was so much work, been busy for 6 weeks now
the walk-in rain shower I installed actually works , no leaks !
my old job as a plumber is finally paying off :)

you can do anything you want, you just have to set your mind to it
LeTayAuthor Commented:
Nice to read activities of Experts that often are in the shadow ...
For me Delphi is not the major task but the one I prefer
I live in Brussels, Belgium and I will retire in July but ... will continue working as consultant ...
Geert GOracle dbaCommented:
nice to see a fellow country member
retirement ... nice,
by the time i get there, there will be no money left the way di rupo and the rest are going on
Ferruccio AccalaiSenior developer, analyst and customer assistance Commented:
Mmm, I think that is simplest to use an embedded unit instead of a component coming from a huge component package.
Anyway, having already it installed, I agree that it's easy to use for this need
LeTayAuthor Commented:
I think the opposite, on a code review point of view.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.